Matryca Wythoffa jest nieskończoną matrycą składającą się z liczb Grundy każdego kwadratu na szachownicy w grze Wythoffa .
Każdy wpis w tej macierzy jest równy najmniejszej nieujemnej liczbie, która nie pojawia się nigdzie powyżej, po lewej stronie lub po przekątnej na północny zachód od pozycji wejścia.
Lewy górny kwadrat 20 na 20 wygląda następująco:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
1 2 0 4 5 3 7 8 6 10 11 9 13 14 12 16 17 15 19 20
2 0 1 5 3 4 8 6 7 11 9 10 14 12 13 17 15 16 20 18
3 4 5 6 2 0 1 9 10 12 8 7 15 11 16 18 14 13 21 17
4 5 3 2 7 6 9 0 1 8 13 12 11 16 15 10 19 18 17 14
5 3 4 0 6 8 10 1 2 7 12 14 9 15 17 13 18 11 16 21
6 7 8 1 9 10 3 4 5 13 0 2 16 17 18 12 20 14 15 11
7 8 6 9 0 1 4 5 3 14 15 13 17 2 10 19 21 12 22 16
8 6 7 10 1 2 5 3 4 15 16 17 18 0 9 14 12 19 23 24
9 10 11 12 8 7 13 14 15 16 17 6 19 5 1 0 2 3 4 22
10 11 9 8 13 12 0 15 16 17 14 18 7 6 2 3 1 4 5 23
11 9 10 7 12 14 2 13 17 6 18 15 8 19 20 21 4 5 0 1
12 13 14 15 11 9 16 17 18 19 7 8 10 20 21 22 6 23 3 5
13 14 12 11 16 15 17 2 0 5 6 19 20 9 7 8 10 22 24 4
14 12 13 16 15 17 18 10 9 1 2 20 21 7 11 23 22 8 25 26
15 16 17 18 10 13 12 19 14 0 3 21 22 8 23 20 9 24 7 27
16 17 15 14 19 18 20 21 12 2 1 4 6 10 22 9 13 25 11 28
17 15 16 13 18 11 14 12 19 3 4 5 23 22 8 24 25 21 26 10
18 19 20 21 17 16 15 22 23 4 5 0 3 24 25 7 11 26 12 13
19 20 18 17 14 21 11 16 24 22 23 1 5 4 26 27 28 10 13 25
Obecnie nie ma znanego wydajnego algorytmu obliczania dowolnego wpisu w macierzy Wythoffa. Jednak Twoim zadaniem w tym problemie jest próba zaprojektowania funkcji heurystycznej, która powie, czy liczba przy określonej współrzędnej wythoff(x, y)
jest parzysta czy nieparzysta.
Twój program nie może zawierać więcej niż 64 KB (65 536 bajtów) kodu źródłowego lub używać więcej niż 2 MB (2 097 152 bajtów) pamięci roboczej.
W szczególności w przypadku użycia pamięci oznacza to, że maksymalny rozmiar zestawu rezydentnego twojego programu nie może przekraczać 2 MB więcej niż maksymalny rozmiar zestawu rezydentnego pustego programu w tym języku. W przypadku języka interpretowanego byłoby to użycie pamięci przez interpreter / maszynę wirtualną, aw przypadku języka skompilowanego byłoby użycie pamięci przez program, który wykonuje główną metodę i nic nie robi.
Twój program zostanie przetestowany na 10000 x 10000
macierzy pod kątem wartości wierszy 20000 <= x <= 29999
i wartości kolumn w 20000 <= y <= 29999
.
Wynik twojego programu to wskaźnik dokładności (liczba poprawnych domysłów) osiągnięty przez twój program, przy czym krótszy kod działa jak remis.
01.R
to 05AB1E, który losowo generuje wartość prawda lub fałsz. Niech 0 będzie prawdziwe, a 1 fałszywe, mój program teoretycznie będzie poprawny ~ 50% czasu. Czy to jest poprawny wpis?