Popular recipes tagged "walker_s_alias"http://code.activestate.com/recipes/tags/walker_s_alias/2008-11-16T15:05:51-08:00ActiveState Code RecipesWalker's alias method for random objects with different probablities (Python)
2008-11-16T15:05:51-08:00denishttp://code.activestate.com/recipes/users/4168005/http://code.activestate.com/recipes/576564-walkers-alias-method-for-random-objects-with-diffe/
<p style="color: grey">
Python
recipe 576564
by <a href="/recipes/users/4168005/">denis</a>
(<a href="/recipes/tags/random_number/">random_number</a>, <a href="/recipes/tags/walker_s_alias/">walker_s_alias</a>).
</p>
<p>an example, strings A B C or D with probabilities .1 .2 .3 .4 --</p>
<pre class="prettyprint"><code>abcd = dict( A=1, D=4, C=3, B=2 )
# keys can be any immutables: 2d points, colors, atoms ...
wrand = Walkerrandom( abcd.values(), abcd.keys() )
wrand.random() # each call -> "A" "B" "C" or "D"
# fast: 1 randint(), 1 uniform(), table lookup
</code></pre>