To kolejne wyzwanie dotyczące liczb Fibonacciego.
Celem jest, aby obliczyć 20'000'000 th liczby Fibonacii tak szybko jak to możliwe. Wyjście dziesiętne ma około 4 MiB; zaczyna się od:
28543982899108793710435526490684533031144309848579
Suma MD5 wyniku wynosi
fa831ff5dd57a830792d8ded4c24c2cb
Musisz przesłać program, który oblicza liczbę podczas działania i podaje wynik stdout
. Najszybszy program, mierzony na moim komputerze, wygrywa.
Oto kilka dodatkowych zasad:
- Musisz przesłać kod źródłowy i plik binarny do uruchomienia na Linuksie x64
- Kod źródłowy musi być krótszy niż 1 MiB, w przypadku złożenia jest również dopuszczalne, jeśli tylko plik binarny jest tak mały.
- Nie wolno dołączać liczby do obliczenia w pliku binarnym, nawet w przebraniu. Liczbę należy obliczyć w czasie wykonywania.
- Mój komputer ma dwa rdzenie; możesz używać równoległości
Wziąłem małą implementację z Internetu, która działa w około 4,5 sekundy. To nie powinno być trudne do pokonania, zakładając, że masz dobry algorytm.
phi = (1+sqrt(5))/2