> 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)))

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to