次のようにして、無限行列M
をon N^2 -> {0, 1}
(ここでN
はからでは1
なく0
)で定義するとします:
M(1, 1)
=0
。すべてのために
x > 1
、M(x, 1)
=1
場合はx
、プライム、とある0
そう。ごとに
y > 1
、M(1, y)
=のy
th番目の用語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
あなたの仕事は、このマトリックスの任意のエントリの値を可能な限り正確に評価するプログラムを構築することです。
プログラムは、2つの整数x
をy
入力として受け取り、任意の形式で入力し、またはを返します。M(x, y)
これは0
または1
です。
コードは任意の言語で記述できますが、ソースコードサイズが64キロバイト(65,536バイト)または合計メモリ使用量が2 MB(2,097,152バイト)を超えてはなりません。プログラムは空のメモリで開始する必要があり(つまり、他の場所からデータをロードできない)、入力ごとに独立して実行する必要があります(つまり、複数の実行で共通データを格納できない場合があります)。また、プログラム8192x8192
は、妥当な時間内に左上の正方形のすべてのエントリを評価できる必要があります。
左上の8192 x 8192
正方形のほとんどのエントリを正しく評価するプログラムが勝者となり、短いコードがタイブレーカーとして機能します。