задача
Определите mod-fold как функцию вида f (x) = x% a 1 % a 2 %…% a k , где a a i - положительные целые числа, а k ≥ 0 . (Здесь % - левоассоциативный оператор по модулю.)
Учитывая список из n целых чисел y 0 ,…, y n − 1 , определите, существует ли мод-фолд f так, чтобы каждый y i = f (i) .
Вы можете выбрать и исправить любые два выхода Y и N для вашей функции / программы. Если существует такое f , вы всегда должны возвращать / печатать точно Y ; если нет, то вы всегда должны вернуться / печатать точно N . (Это могут быть true
/ false
, или 1
/ 0
или false
/ true
и т. Д.) Упомяните это в своем ответе.
Самая короткая подача в байтах побеждает.
пример
Определить f (x) = x% 7% 3 . Его значения начинаются:
| x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ...
| f(x) | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 0 | 1 | 2 | ...
Таким образом, в 0 1 2 0 1 2 0 0 1 2
качестве входных данных для нашего решения мы напечатали бы Y , так как этот f генерирует эту последовательность. Однако, учитывая в 0 1 0 1 2
качестве входных данных, мы напечатали бы N , так как никакой f не генерирует эту последовательность.
Контрольные примеры
Формулы, заданные, когда вывод Y , просто для справки; Вы не должны ни в коем случае печатать их.
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)