Ho raccolto alcune domande del Project Euler oggi e ho deciso di trovare modi più efficaci per rispondere alle domande alle quali avevo già risposto.
Quindi sulla domanda su come trovare la somma dei termini pari di Fibonacci fino a 4 milioni; Ho notato che se avessimo una sequenza separata per i termini di Fibonacci pari (a partire da 0 & 2 come i primi e secondo termini rispettivamente), la progressione sarebbe [0,2,8,34,144,610,...]
Se sono noti due valori di due termini successivi, il seguente termine potrebbe essere ottenuto con questa espressione:
[ T(n) = (4 * T(n-1)) + T(n-2) ]
...
Where;
T(n) : is the nth term,
T(n-1) : is the (n-1)th term,
T(n-2) : is the (n-2)th term,
and '4' is a constant.
Tuttavia, finora non sono stato in grado di ricavare un'espressione adeguata per trovare il valore in una posizione arbitraria senza conoscere i valori dei due termini precedenti.
La mia domanda:
-
È così che vengono derivate le equazioni (/ algoritmi)?
-
È un algoritmo efficace?
Nota: L'altro metodo meno efficiente (secondo me) è:
-
Crea una funzione per generare tutti i numeri nella sequenza di Fibonacci inferiore a 4 milioni,
-
Ottieni i numeri pari tra loro,
-
Trova la loro somma.