Матрица Витоффа - это бесконечная матрица, состоящая из чисел Гранди каждого квадрата на шахматной доске в игре Витоффа .
Каждая запись в этой матрице равна наименьшему неотрицательному числу, которое не появляется нигде выше, слева или по диагонали к северо-западу от позиции записи.
Верхний левый квадрат 20 на 20 выглядит так:
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
В настоящее время не существует известного эффективного алгоритма для вычисления произвольной записи в матрице Витоффа. Однако ваша задача в этой задаче состоит в том, чтобы попытаться создать эвристическую функцию, которая сообщит, является ли число по определенной координате wythoff(x, y)
четным или нечетным.
Ваша программа может содержать не более 64 КБ (65 536 байт) исходного кода или использовать более 2 МБ (2 097 152 байт) рабочей памяти.
В частности, для использования памяти это означает, что максимальный размер резидентного набора вашей программы не может превышать на 2 МБ больше, чем максимальный размер резидентного набора пустой программы на этом языке. В случае интерпретируемого языка это будет использование памяти интерпретатором / самой виртуальной машиной, а в случае скомпилированного языка это будет использование памяти программой, которая выполняет метод main и ничего не делает.
Ваша программа будет проверена на 10000 x 10000
матрице для значений строк в 20000 <= x <= 29999
и значений столбцов в 20000 <= y <= 29999
.
Оценка вашей программы - это показатель точности (количество правильных предположений), достигнутый вашей программой, с более коротким кодом, действующим в качестве тай-брейка.
01.R
является 05AB1E, который выводит true или false случайным образом. Пусть 0 будет истинно, а 1 - ложно, моя программа теоретически будет правильной ~ 50% времени. Это действительная запись?