On May 17, 10:39 pm, Tartifola <tartif...@gmail.comwrote:

Hi,

I have a list with probabilities as elements

[p1,p2,p3]

with of course p1+p2+p3=1. I'd like to draw a

random element from this list, based on the probabilities contained in

the list itself, and return its index.

Any help on the best way to do that?

Thanks

This of course depends on your definition of "best". There is a fast

and simple technique if all probabilities are multiples of 1/n for a

reasonably small n, or if you are willing to round them to such.

Suppose for example that the probabilities are [0.42, 0.23, 0.35].

Create a list of 100 items with 42 0's, 23 1's, and 35 2's, then

select a random element using random.choice() or

equivalent.