number generator
Raymond Hettinger
python at rcn.com
Wed Mar 14 04:44:03 EDT 2007
> To make the solutions equi-probable, a simple approach is to
> recursively enumerate all possibilities and then choose one of them
> with random.choice().
Since people are posting their solutions now (originally only hints
were provided for the homework problem), here's mine:
def genpool(n, m):
if n == 1:
yield [m]
else:
for i in xrange(1, m):
for rest in genpool(n-1, m-i):
yield rest + [i]
import random
print random.choice(list(genpool(n=4, m=20)))
More information about the Python-list
mailing list