The Wythoff matrix is an infinite matrix consisting of the Grundy numbers of each square on a chessboard in Wythoff's game.
Each entry in this matrix is equal to the smallest nonnegative number that does not appear anywhere above, to the left, or diagonally northwest of the position of the entry.
The top-left 20-by-20 square looks like this:
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
There is currently no known efficient algorithm for computing an arbitrary entry in the Wythoff matrix. However, your task in this problem is to try to design a heuristic function that will tell whether the number at a specific coordinate wythoff(x, y)
is even or odd.
Your program may not contain more than 64 KB (65,536 bytes) of source code, or use more than 2 MB (2,097,152 bytes) of working memory.
In particular for memory usage, this means that the maximum resident set size of your program may not exceed 2 MB more than the maximum resident set size of an empty program in that language. In the case of an interpreted language, it would be the memory usage of the interpreter / virtual machine itself, and in the case of a compiled language, it would be the memory usage of a program that executes the main method and does nothing.
Your program will be tested on the 10000 x 10000
matrix for row values in 20000 <= x <= 29999
and column values in 20000 <= y <= 29999
.
The score of your program is the accuracy rate (number of correct guesses) your program achieves, with shorter code acting as a tiebreaker.
01.R
is a 05AB1E that outputs true or false randomly. Let 0 be true and 1 be false, my program will theoretically be correct ~50% of the time. Is this a valid entry? \$\endgroup\$