Data una sequenza aritmetica finita di numeri interi positivi con alcuni termini rimossi dal centro, ricostruire l'intera sequenza.
L'obiettivo
Considera una sequenza aritmetica: un elenco di numeri interi positivi in cui la differenza tra due elementi successivi è la stessa.
2 5 8 11 14 17
Supponiamo ora che uno o più numeri interi vengano rimossi dalla sequenza, soggetti ai seguenti vincoli:
- I numeri interi rimossi saranno termini consecutivi della sequenza.
- Il primo e l'ultimo numero intero nella sequenza non verranno rimossi.
- Almeno tre numeri interi rimarranno nella sequenza.
Per la sequenza sopra, le possibili rimozioni includono:
2 5 8 14 17 (removed 11)
2 5 17 (removed 8 11 14)
2 14 17 (removed 5 8 11)
Il tuo compito: data una di queste sequenze parziali, ricostruisci la sequenza completa originale.
Dettagli
Si può presumere che l'input sia valido (ha una soluzione) e manca almeno un termine. Tutti i numeri nella sequenza saranno numeri interi positivi (> 0). La sequenza può avere una differenza positiva o negativa tra i termini (cioè può essere in aumento o in diminuzione). Non sarà una sequenza costante (ad es 5 5 5
.).
La tua soluzione può essere un programma completo o una funzione . Qualsiasi metodo di input e output predefinito è accettabile.
L'input e l'output possono essere una stringa (con qualsiasi delimitatore ragionevole), un elenco di stringhe o un elenco di numeri. Puoi rappresentare i numeri in qualunque base sia conveniente per la tua lingua.
Indica eventuali metodi / formati I / O insoliti nel tuo invio, in modo che altri possano testare il tuo codice più facilmente.
Casi test
In: 2 5 8 14 17
Out: 2 5 8 11 14 17
In: 2 5 17
Out: 2 5 8 11 14 17
In: 2 14 17
Out: 2 5 8 11 14 17
In: 21 9 6 3
Out: 21 18 15 12 9 6 3
In: 10 9 5
Out: 10 9 8 7 6 5
In: 1 10 91 100
Out: 1 10 19 28 37 46 55 64 73 82 91 100
Questo è code-golf ; vince la risposta più breve in ogni lingua.
2 5 ... 17