Zadanie
Zdefiniuj mod-krotnie jako funkcję postaci f (x) = x% a 1 % a 2 %…% a k , gdzie a i są liczbami całkowitymi dodatnimi i k ≥ 0 . (Tutaj % jest operatorem modulo asocjacyjnym z lewej strony).
Biorąc pod uwagę listę n liczb całkowitych y 0 ,…, y n − 1 , określ, czy istnieje mod-krotnie f , aby każde y i = f (i) .
Możesz wybrać i naprawić dowolne dwa wyjścia Y i N dla swojej funkcji / programu. Jeśli istnieje takie f , zawsze musisz zwrócić / wydrukować dokładnie Y ; Jeśli nie, należy zawsze powrócić / wydrukować dokładnie N . (Mogą to być true
/ false
, 1
/ / 0
, lub false
/ true
, itp.) Wspomnij o nich w swojej odpowiedzi.
Najkrótsze przesłanie w bajtach wygrywa.
Przykład
Zdefiniuj f (x) = x% 7% 3 . Jego wartości zaczynają się:
| x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ...
| f(x) | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 0 | 1 | 2 | ...
Zatem 0 1 2 0 1 2 0 0 1 2
jako dane wejściowe do naszego rozwiązania wypisujemy Y , ponieważ f generuje tę sekwencję. Jednak 0 1 0 1 2
jako dane wejściowe wypisujemy N , ponieważ żadne f nie generuje tej sekwencji.
Przypadki testowe
Wzory podane, gdy dane wyjściowe to Y, służą wyłącznie jako odniesienie; nie wolno ich w żadnym momencie drukować.
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)