Die Wythoff-Matrix ist eine unendliche Matrix, die aus den Grundy-Zahlen jedes Quadrats auf einem Schachbrett in Wythoffs Spiel besteht .
Jeder Eintrag in dieser Matrix entspricht der kleinsten nichtnegativen Zahl, die nirgends über, links oder diagonal nordwestlich der Position des Eintrags erscheint.
Das obere linke 20-mal-20-Quadrat sieht folgendermaßen aus:
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
Derzeit ist kein effizienter Algorithmus zur Berechnung eines beliebigen Eintrags in der Wythoff-Matrix bekannt. Ihre Aufgabe bei diesem Problem besteht jedoch darin, eine heuristische Funktion zu entwerfen, die angibt, ob die Zahl an einer bestimmten Koordinate wythoff(x, y)
gerade oder ungerade ist.
Ihr Programm darf nicht mehr als 64 KB (65.536 Byte) Quellcode enthalten oder mehr als 2 MB (2.097.152 Byte) Arbeitsspeicher verwenden.
Insbesondere für die Speichernutzung bedeutet dies, dass die maximale Größe des residenten Satzes Ihres Programms 2 MB nicht überschreiten darf als die maximale Größe des residenten Satzes eines leeren Programms in dieser Sprache. Im Fall einer interpretierten Sprache wäre dies die Speichernutzung des Interpreters / der virtuellen Maschine selbst, und im Fall einer kompilierten Sprache wäre es die Speichernutzung eines Programms, das die Hauptmethode ausführt und nichts tut.
Ihr Programm wird in der 10000 x 10000
Matrix auf Zeilen- 20000 <= x <= 29999
und Spaltenwerte in getestet 20000 <= y <= 29999
.
Die Punktzahl Ihres Programms ist die Genauigkeitsrate (Anzahl der richtigen Vermutungen), die Ihr Programm erreicht, wobei kürzerer Code als Tiebreaker fungiert.
01.R
ist ein 05AB1E, der zufällig wahr oder falsch ausgibt. Sei 0 wahr und 1 falsch, mein Programm wird theoretisch ~ 50% der Zeit korrekt sein. Ist das ein gültiger Eintrag?