假设我们以这种方式在M
上N^2 -> {0, 1}
(N
从1
代替0
)开始定义一个无限矩阵:
M(1, 1)
=0
。对于每个
x > 1
,M(x, 1)
=1
ifx
是素数,0
否则。对于每一个
y > 1
,M(1, y)
=的y
中日长期Thue-Morse sequence
。对于每个
x, y > 1
,M(x, y)
=M(x, y-1) + M(x-1, y) mod 2
。
该16x16
矩阵的左上部分看起来像(具有x
行和y
列):
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0
1 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1
1 1 0 1 1 1 1 0 0 0 0 1 0 0 1 0
0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1
1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1
0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1
1 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1
0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1
0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1
0 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0
1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1
0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1
1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0
0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1
0 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1
0 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1
您的任务是构建一个程序,该程序将尽可能准确地评估此矩阵中任意条目的值。
您的程序将使用两个整数,x
并且y
以您选择的任何形式作为输入,然后返回M(x, y)
,它们将为0
或1
。
您的代码可以用任何语言编写,但源代码大小不得超过64 KB(65,536字节)或总内存使用量不得超过2 MB(2,097,152字节)。您的程序必须从空内存开始(即,它不能从其他地方加载数据)并针对每个输入独立运行(即,它可能不存储多次运行的通用数据)。您的程序还必须能够8192x8192
在合理的时间内评估左上角的所有条目。
在左上角正确评估最多条目的程序8192 x 8192
将是赢家,而较短的代码将成为平局。