Compito
Definire una mod-fold in funzione della forma f (x) = x% a 1 % a 2 % ...% a k , dove a i sono numeri interi positivi e k ≥ 0 . (Qui % è l'operatore modulo associativo di sinistra.)
Dato un elenco di n numeri interi y 0 ,…, y n − 1 , determinare se esiste una mod-fold f in modo che ogni y i = f (i) .
È possibile scegliere e correggere due uscite Y e N per la propria funzione / programma. Se esiste una tale f , devi sempre restituire / stampare esattamente Y ; in caso contrario, si deve sempre tornare / stampare esattamente N . (Questi potrebbero essere true/ false, o 1/ 0, o false/ true, ecc.) Menzionali nella tua risposta.
Vince l'invio più breve in byte.
Esempio
Definisci f (x) = x% 7% 3 . I suoi valori iniziano:
| x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ...
| f(x) | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 0 | 1 | 2 | ...
Quindi, dato 0 1 2 0 1 2 0 0 1 2come input per la nostra soluzione, stamperemmo Y , poiché questa f genera quella sequenza. Tuttavia, dato 0 1 0 1 2come input, stamperemmo N , poiché nessuna f genera quella sequenza.
Casi test
Le formule fornite quando l'output è Y sono solo per riferimento; non devi mai stamparli.
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)