Tâche
Définissez un pli mod en fonction de la forme f (x) = x% a 1 % a 2 %…% a k , où les a i sont des entiers positifs et k ≥ 0 . (Ici, % est l'opérateur modulo associatif gauche.)
Etant donné une liste de n entiers y 0 ,…, y n − 1 , déterminer s'il existe un mod-fold f de sorte que chaque y i = f (i) .
Vous pouvez choisir et fixer deux sorties Y et N pour votre fonction / programme. S'il existe un tel f , vous devez toujours retourner / imprimer exactement Y ; sinon, vous devez toujours retourner / imprimer exactement N . (Il peut s'agir de true
/ false
, ou 1
/ 0
, false
/ / true
, etc.) Mentionnez-les dans votre réponse.
La soumission la plus courte en octets l'emporte.
Exemple
Définissez f (x) = x% 7% 3 . Ses valeurs commencent:
| x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ...
| f(x) | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 0 | 1 | 2 | ...
Ainsi, étant donné 0 1 2 0 1 2 0 0 1 2
en entrée de notre solution, nous imprimerions Y , comme ce f génère cette séquence. Cependant, étant donné 0 1 0 1 2
en entrée, nous imprimerions N , car aucun f ne génère cette séquence.
Cas de test
Les formules données lorsque la sortie est Y sont juste pour référence; vous ne devez à aucun moment les imprimer.
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)