L'obiettivo di questa sfida è utilizzare il metodo di Eulero per approssimare la soluzione di un'equazione differenziale della forma f (n) (x) = c. †
L'ingresso sarà una lista di interi in cui il n esimo valore rappresenta il valore di f (n) (0). Il primo numero intero è f (0), il secondo è f '(0) e così via. L'ultimo numero intero in questo elenco è la costante e rimarrà sempre lo stesso.
Come input verrà fornito anche un numero intero positivo (diverso da zero) x , che rappresenta il valore target (si sta tentando di stimare f (x)). La dimensione del passo per il metodo di Eulero sarà sempre 1. Quindi, dovrai fare un totale di x passi.
Se non hai familiarità con il metodo di Eulero, ecco un esempio dettagliato con una spiegazione per l'input [4, -5, 3, -1]
, x = 8.
x f(x) f'(x) f''(x) f'''(x)
0 4 -5 3 -1
1 4-5 = -1 -5+3 = -2 3-1 = 2 -1
2 -1-2 = -3 -2+2 = 0 2-1 = 1 -1
3 -3+0 = -3 0+1 = 1 1-1 = 0 -1
4 -3+1 = -2 1+0 = 1 0-1 = -1 -1
5 -2+1 = -1 1-1 = 0 -1-1 = -2 -1
6 -1+0 = -1 0-2 = -2 -2-1 = -3 -1
7 -1-2 = -3 -2-3 = -5 -3-1 = -4 -1
8 -3-5 = -8
In sostanza, ogni cella nella tabella generata è la somma della cella sopra di essa e la cella sopra e a destra. Quindi, f (a) = f (a-1) + f '(a-1); f '(a) = f' (a-1) + f '' (a-1); e f '' (a) = f '' (a-1) + f '' '(a-1). La risposta finale è f (8) ≈ -8. ††
L'elenco di input conterrà sempre 2 o più elementi, tutti con valori assoluti inferiori a 10. x ≥ 1 è inoltre garantito. L'output è un singolo intero, l'approssimazione di f (x). L'input può essere preso in entrambi gli ordini (l'elenco prima di x o x prima dell'elenco). x può anche essere il primo o l'ultimo elemento dell'elenco, se lo si desidera.
Casi test:
[4, -5, 3, -1], x = 8 => -8
[1, 2, 3, 4, 5, 6], x = 10 => 3198
[1, 3, 3, 7], x = 20 => 8611
[-3, 3, -3, 3, -3, 3, -3, 3, -3], x = 15 => -9009
[1, 1], x = 1 => 2
†: è da notare che l'utilizzo di un metodo di approssimazione in questa situazione è, in effetti, stupido. tuttavia, ai fini di questa sfida è stata scelta la funzione più semplice possibile.
††: il valore effettivo risulta essere -25⅓, il che qualificherebbe questa approssimazione come "non molto buona".