Consente di definire una sequenza puntatore essere qualsiasi sequenza tale che una (n) = a ((n-1) - (a (n-1))) forall n maggiore di un certo numero finito. Ad esempio se la nostra sequenza è iniziata con
3 2 1
Il nostro prossimo termine sarebbe 2, perché a (n-1) = 1 , (n-1) -1 = 1 , a (1) = 2 (questo esempio è indice zero, tuttavia non importa quale indice verrà utilizzato per il calcolo essere sempre lo stesso.). Se ripetiamo il processo otteniamo la sequenza infinita
3 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2
Compito
Dato un array iniziale di numeri interi positivi, viene emessa la sequenza di puntatori che inizia con quell'array.
Tipi di uscita
L'output è pensato per essere flessibile, se si sceglie di scrivere una funzione come programma, può restituire un elenco infinito di numeri interi o una funzione che indicizza la sequenza. Se si sceglie di scrivere un programma completo, è possibile produrre in modo indefinito i termini della sequenza.
Puoi anche scegliere di prendere due input, l'array iniziale e un indice. Se si sceglie di eseguire questa operazione, è necessario solo generare il termine della sequenza in quell'indice.
Non ti verrà mai assegnata una sequenza che richiede l'indicizzazione prima dell'inizio della sequenza. Ad esempio, 3non è un input valido perché è necessario disporre di termini prima 3di risolvere il termine successivo.
Questo è code-golf, quindi il tuo punteggio sarà il numero di byte nel tuo programma con un punteggio più basso migliore.
Casi test
i casi di test vengono troncati per semplicità
2 1 -> 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 ...
2 3 1 -> 2 3 1 3 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 ...
3 3 1 -> 3 3 1 3 3 3 1 3 3 3 1 3 3 3 1 3 3 3 1 3 3 3 1 3 3 3 1 3 ...
4 3 1 -> 4 3 1 3 4 4 3 3 4 4 4 3 4 4 4 4 3 4 4 4 4 3 4 4 4 4 3 4 ...