Questa è un'altra sfida sui numeri di Fibonacci.
L'obiettivo è quello di calcolare il 20'000'000 esimo numero di Fibonacii il più velocemente possibile. L'output decimale è di circa 4 MiB di grandi dimensioni; inizia con:
28543982899108793710435526490684533031144309848579
La somma MD5 dell'output è
fa831ff5dd57a830792d8ded4c24c2cb
Devi inviare un programma che calcola il numero mentre è in esecuzione e inserisce il risultato stdout
. Il programma più veloce, misurato sulla mia macchina, vince.
Ecco alcune regole aggiuntive:
- Devi inviare il codice sorgente e un binario eseguibile su un Linux x64
- Il codice sorgente deve essere inferiore a 1 MiB, in caso di assemblaggio è accettabile anche se solo il binario è così piccolo.
- Non devi includere il numero da calcolare nel tuo file binario, anche in modo mascherato. Il numero deve essere calcolato in fase di esecuzione.
- Il mio computer ha due core; ti è permesso usare il parallelismo
Ho preso una piccola implementazione da Internet che dura circa 4,5 secondi. Non dovrebbe essere molto difficile batterlo, supponendo che tu abbia un buon algoritmo.
phi = (1+sqrt(5))/2