Quello che vuoi fare è chiamato interpolazione polinomiale . Esistono molti metodi (vedere http://en.wikipedia.org/wiki/Polynomial_interpolation), ma è necessario avere un U con limite superiore sul grado del polinomio e almeno su valori di U + 1.
Se si dispone di valori sequenziali, esiste un semplice algoritmo.
Data una sequenza x1, x2, x3, ..., lascia Delta (x) la sequenza di differenze x2 - x1, x3 - x2, x4 - x3, .... Se hai valori consecutivi di un grado n polinomiale, allora l'ennesima iterazione di Delta è una sequenza costante.
Ad esempio, il polinomio n^3:
1, 8, 27, 64, 125, 216, ...
7, 19, 37, 61, 91, ...
12, 18, 24, 30, ...
6, 6, 6, ...
Per ottenere il valore successivo, riempire un altro 6 e poi procedere a ritroso.
6, 6, 6, 6 = 6, ...
12, 18, 24, 30, 36 = 30 + 6, ...
7, 19, 37, 61, 91, 127 = 91 + 36, ...
1, 8, 27, 64, 125, 216, 343 = 216 + 127, ...
La restrizione sul numero di valori sopra assicura che la sequenza non diventi mai vuota durante l'esecuzione delle differenze.
Bene i primi due sono facili ma come generalizzare? – JonH
Penso che la seconda riga restituisca 60 ... –
Sì, grazie Maurizio. Mi è mancato. : p –