Angenommen , wir eine unendliche Matrix definieren M, auf N^2 -> {0, 1}(wobei Nbeginnt ab , 1statt 0) in dieser Art und Weise:
M(1, 1)=0.Für jeden
x > 1,M(x, 1)=1wennxist Primzahl und0sonst.Für jeden
y > 1,M(1, y)= deryth Begriff in derThue-Morse sequence.Für jeden
x, y > 1,M(x, y)=M(x, y-1) + M(x-1, y) mod 2.
Der obere linke 16x16Abschnitt dieser Matrix sieht wie folgt aus (wobei xes sich um Zeilen und ySpalten handelt):
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
Ihre Aufgabe ist es, ein Programm zu erstellen, das den Wert eines beliebigen Eintrags in dieser Matrix so genau wie möglich auswertet.
Ihr Programm nimmt zwei ganze Zahlen xund ygibt sie in einer beliebigen Form als Eingabe ein und gibt sie zurück M(x, y), entweder 0oder 1.
Ihr Code kann in einer beliebigen Sprache geschrieben sein, darf jedoch 64 Kilobyte (65.536 Bytes) Quellcodegröße oder 2 MB (2.097.152 Bytes) Gesamtspeicherauslastung nicht überschreiten. Ihr Programm muss mit leerem Speicher beginnen (dh es kann keine Daten von einer anderen Stelle laden) und muss für jede Eingabe unabhängig ausgeführt werden (d. H., Es darf keine gemeinsamen Daten für mehrere Durchläufe speichern). Ihr Programm muss außerdem in der Lage sein, alle Einträge im oberen linken 8192x8192Quadrat in angemessener Zeit auszuwerten .
Das Programm, das die meisten Einträge im oberen linken 8192 x 8192Quadrat richtig auswertet, wird der Gewinner sein, wobei ein kürzerer Code als Auslöser fungiert.