La matrice Wythoff est une matrice infinie composée des nombres Grundy de chaque carré sur un échiquier dans le jeu de Wythoff .
Chaque entrée de cette matrice est égale au plus petit nombre non négatif qui n'apparaît nulle part au-dessus, à gauche ou en diagonale au nord-ouest de la position de l'entrée.
Le carré 20 par 20 en haut à gauche ressemble à ceci:
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
Il n'existe actuellement aucun algorithme efficace connu pour calculer une entrée arbitraire dans la matrice Wythoff. Cependant, votre tâche dans ce problème est d'essayer de concevoir une fonction heuristique qui dira si le nombre à une coordonnée spécifique wythoff(x, y)
est pair ou impair.
Votre programme ne doit pas contenir plus de 64 Ko (65 536 octets) de code source ou utiliser plus de 2 Mo (2 097 152 octets) de mémoire de travail.
En particulier pour l'utilisation de la mémoire, cela signifie que la taille maximale définie par le résident de votre programme ne peut pas dépasser 2 Mo de plus que la taille maximale définie par le résident d'un programme vide dans cette langue. Dans le cas d'un langage interprété, ce serait l'utilisation de la mémoire de l'interpréteur / machine virtuelle elle-même, et dans le cas d'un langage compilé, ce serait l'utilisation de la mémoire d'un programme qui exécute la méthode principale et ne fait rien.
Votre programme sera testé sur la 10000 x 10000
matrice pour les valeurs de ligne 20000 <= x <= 29999
et les valeurs de colonne dans 20000 <= y <= 29999
.
Le score de votre programme est le taux de précision (nombre de suppositions correctes) atteint par votre programme, avec un code plus court faisant office de bris d'égalité.
01.R
est un 05AB1E qui sort vrai ou faux au hasard. Soit 0 vrai et 1 faux, mon programme sera théoriquement correct ~ 50% du temps. Est-ce une entrée valide?