LOOFYYLO commited on
Commit
df08b20
·
verified ·
1 Parent(s): b61a751

Upload find_k4_solution.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. find_k4_solution.py +36 -0
find_k4_solution.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import itertools
2
+
3
+ def verify(m, k, r, p0, p1):
4
+ def get_p(x):
5
+ s = sum(x) % m
6
+ return p0 if s == 0 else p1
7
+
8
+ all_edges = set()
9
+ for color in range(k):
10
+ visited_set = set()
11
+ curr = tuple([0]*k)
12
+ edges = set()
13
+ for _ in range(m**k):
14
+ if curr in visited_set: return False
15
+ visited_set.add(curr)
16
+ p = get_p(curr)
17
+ dim = p[color]
18
+ edges.add((curr, dim))
19
+ nx = list(curr)
20
+ nx[dim] = (nx[dim] + r[dim]) % m
21
+ curr = tuple(nx)
22
+ if curr != (0,0,0,0): return False
23
+ if len(visited_set) != m**k: return False
24
+ if all_edges.intersection(edges): return False
25
+ all_edges.update(edges)
26
+ return True
27
+
28
+ perms = list(itertools.permutations(range(4)))
29
+ r = [1, 1, 1, 1]
30
+ # Limit search
31
+ for p0 in perms[:5]:
32
+ for p1 in perms:
33
+ if verify(2, 4, r, p0, p1):
34
+ print(f"Found solution: p0={p0}, p1={p1}")
35
+ import sys
36
+ sys.exit(0)