Misalkan kita mendefinisikan matriks tak terbatas M
, pada N^2 -> {0, 1}
(di mana N
dimulai dari 1
alih-alih 0
) dengan cara ini:
M(1, 1)
=0
.Untuk setiap
x > 1
,M(x, 1)
=1
jikax
prima, dan0
sebaliknya.Untuk setiap
y > 1
,M(1, y)
=y
istilah ke dalamThue-Morse sequence
.Untuk setiap
x, y > 1
,M(x, y)
=M(x, y-1) + M(x-1, y) mod 2
.
Bagian kiri atas 16x16
dari matriks ini terlihat (dengan x
menjadi baris dan y
kolom):
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
Tugas Anda adalah membangun sebuah program yang akan mengevaluasi nilai entri sewenang-wenang dalam matriks ini seakurat mungkin.
Program Anda akan mengambil dua bilangan bulat x
dan y
sebagai input, dalam bentuk apa pun yang Anda pilih, dan kembali M(x, y)
, yang bisa berupa 0
atau 1
.
Kode Anda dapat ditulis dalam bahasa apa pun, tetapi tidak boleh melebihi 64 kilobyte (65.536 byte) dari ukuran kode sumber atau 2 MB (2.097.152 byte) dari total penggunaan memori. Program Anda harus mulai dengan memori kosong (mis. Itu tidak dapat memuat data dari tempat lain) dan berjalan secara independen untuk setiap input (artinya, ia mungkin tidak menyimpan data umum untuk beberapa kali dijalankan). Program Anda juga harus dapat mengevaluasi semua entri di kotak kiri atas 8192x8192
dalam jumlah waktu yang wajar.
Program yang mengevaluasi entri terbanyak dengan benar di kotak kiri atas 8192 x 8192
akan menjadi pemenang, dengan kode yang lebih pendek bertindak sebagai tie-breaker.