Gerard Flanagan <[EMAIL PROTECTED]> wrote: > def distribution(N=2): > p = [0] + sorted( random.random() for _ in range(N-1) ) + [1] > for j in range(N): > yield p[j+1] - p[j] > > spread = list(distribution(10)) > > print spread > print sum(spread)
This is simpler, easier to prove correct and most likely quicker. def distribution(N=2): L = [ random.uniform(0,1) for _ in xrange(N) ] sumL = sum(L) return [ l/sumL for l in L ] spread = distribution(10) print spread print sum(spread) -- Nick Craig-Wood <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick -- http://mail.python.org/mailman/listinfo/python-list