Tarefa
Defina uma dobra de modificação em função da forma f (x) = x% a 1 % a 2 %…% a k , onde a a i são números inteiros positivos e k ≥ 0 . (Aqui, % é o operador do módulo associativo à esquerda.)
Dada uma lista de n números inteiros y 0 ,…, y n − 1 , determine se existe uma dobra mod f para que cada y i = f (i) .
Você pode escolher e fixar quaisquer duas saídas Y e N para sua função / programa. Se existir um f , você sempre deve retornar / imprimir exatamente Y ; se não, você deve sempre retornar / imprimir exatamente N . (Estes podem ser true
/ false
, ou 1
/ 0
, ou false
/ true
, etc.) Mencione-os na sua resposta.
O menor envio em bytes vence.
Exemplo
Defina f (x) = x% 7% 3 . Seus valores começam:
| x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ...
| f(x) | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 0 | 1 | 2 | ...
Assim, dada 0 1 2 0 1 2 0 0 1 2
como entrada para a solução, que iria imprimir Y , como esta f gera essa sequência. No entanto, 0 1 0 1 2
como entrada, imprimiríamos N , pois nenhum f gera essa sequência.
Casos de teste
As fórmulas fornecidas quando a saída é Y são apenas para referência; você não deve imprimi-los em nenhum momento.
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)