Aufgabe
Definieren Sie eine Modfalte als Funktion der Form f (x) = x% a 1 % a 2 %…% a k , wobei a i positive ganze Zahlen und k ≥ 0 sind . (Hier ist % der linksassoziative Modulo-Operator.)
Bestimmen Sie anhand einer Liste von n ganzen Zahlen y 0 ,…, y n - 1 , ob es eine Modfalte f gibt, so dass jedes y i = f (i) .
Sie können zwei beliebige Ausgänge Y und N für Ihre Funktion / Ihr Programm auswählen und festlegen . Wenn es ein solches f gibt , müssen Sie immer genau Y zurückgeben / drucken ; Wenn nicht, müssen Sie immer genau N zurücksenden / ausdrucken . (Dies können true/ false, oder 1/ 0, oder false/ trueusw. sein.) Erwähnen Sie diese in Ihrer Antwort.
Die kürzeste Übermittlung in Bytes gewinnt.
Beispiel
Definiere f (x) = x% 7% 3 . Seine Werte beginnen:
| x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ...
| f(x) | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 0 | 1 | 2 | ...
Somit gegeben 0 1 2 0 1 2 0 0 1 2als Eingabe für unsere Lösung, würden wir drucken Y , wie dies f diese Sequenz erzeugt. Als 0 1 0 1 2Eingabe würden wir jedoch N ausgeben , da kein f diese Sequenz erzeugt.
Testfälle
Die bei der Ausgabe von Y angegebenen Formeln dienen nur als Referenz. Sie dürfen sie zu keinem Zeitpunkt ausdrucken.
0 1 2 3 4 5 Y (x)
1 N
0 0 0 Y (x%1)
0 1 2 0 1 2 0 0 1 2 Y (x%7%3)
0 0 1 N
0 1 2 3 4 5 6 0 0 1 2 Y (x%8%7)
0 1 2 0 1 2 0 1 2 3 N
0 2 1 0 2 1 0 2 1 N
0 1 0 0 0 1 0 0 0 0 1 Y (x%9%4%3%2)