#!/etc/python3.5 RollList = [ ( p, q, r, s, t, u, v, w, x, y, z ) for z in range(0,2)\ for y in range(0,2)\ for x in range(0,2)\ for w in range(0,2)\ for v in range(0,2)\ for u in range(0,2)\ for t in range(0,2)\ for s in range(0,2)\ for r in range(0,2)\ for q in range(0,2)\ for p in range(0,2) ] file = open("non-binomial.2", "w") for MAX in xrange(2,12): for TN in xrange(1,12): pool = [ max(4,(TN/2)*2+2) ]*MAX #pool of MAX d4s while True: print TN, pool #merely for seeing progress total = [ 0.0 ]*(MAX+1) #List of 0 to MAX successes for roll in RollList[0:2**(MAX+1)]: product = 1.0 cnt = 0 #number of successes for j in xrange(0,MAX): if roll[j]: #jth die is a success product *= (1.0 - float(TN)/float(pool[j])) cnt += 1 else: product *= (float(TN)/float(pool[j])) total[cnt] += product file.write( "%d %s %s\n" % (TN, pool, total)) if pool[0:MAX] == [ 12 ]*MAX: break else: for idx in xrange (0,MAX): if idx == MAX-1: pool[idx] += 2 elif pool[(idx+1):MAX] == [pool[idx]]*(MAX-idx-1): pool[idx] += 2 for i in xrange(idx+1,MAX): pool[i] = max(4,(TN/2)*2+2) break file.close()