"""JAM 5: does share*sqrt(ln N) actually approach 1/2, or is it still falling past the point the old checkpoint list could see? Reuses van_eck_counting_shadow.census() untouched (same recurrence, same per-step assertion Z(N) = 1 + D(N-1)) and simply asks it for checkpoints the original script never printed: 100M and 200M. No new logic, no edits to the audited instrument -- only a wider horizon. """ from math import log, sqrt from van_eck_counting_shadow import census def main() -> None: checkpoints = [50_000_000, 100_000_000, 200_000_000] rows = census(200_000_000, checkpoints) print("terms | zero share | share*sqrt(ln N) | max zero gap") prev = None for terms, zeros, _lagged, gap in rows: share = zeros / terms stat = share * sqrt(log(terms)) delta = "" if prev is None else f" | delta {stat - prev:+.7f}" print(f"{terms:>12,} | {share:>10.7f} | {stat:>16.7f} |" f" {gap:>12,}{delta}") prev = stat if __name__ == "__main__": main()