0
Using propability in random word generator
Hey, I want to create a random word generator in Python and letters should be picked with certain probabilities (eg. A=3%, B=1%, ...). My first thought was a dictionary {'a':3, .. }, but I am sure there are better ways.. So can you tell me, if you could think of better data structures to implement a probability pick out of the alphabet? (set, list, heap, ... )
4 Antworten
+ 3
The usual approach is a probability density function (like the one from statistics class).
In code that means you need just an array of probabilities [0.03, 0.01, ...]. A dictionary is fine too but a heap would be the wrong choice because all you need to do is run through the list.
Then everytime you want to generate a letter you pick a random number `x ∈ [0; 1[` and initialize a counter to 0. You keep running through your array and add the probabilities to your counter, until `counter ≥ x`. And that's the letter you choose.
I'm sure numpy or scipy have that built in too but I wouldn't know anything about that.
+ 1
Schindlabua ahhh I could have come up with this one. That's the missing piece :)) thank you.. I will try it, but...
If anyone knows the library, tell me please!
+ 1
Immer gern :)
0
Jay Matthews basically the same as my suggestion. Problem is: how do you pick with the entered probabilities? Random guess of a letter x and then keep it with the probability P(x), or else pick a new random one? I think that is no beautiful solution.