Це ще одна проблема щодо чисел Фібоначчі.
Мета - обчислити 20'000'000 - е число Фібонацій як можна швидше. Десятковий вихід становить близько 4 МіБ; він починається з:
28543982899108793710435526490684533031144309848579
Сума результату MD5 становить
fa831ff5dd57a830792d8ded4c24c2cb
Ви повинні подати програму, яка обчислює кількість під час запуску та ставить результат stdout. Виграє найшвидша програма, виміряна на моїй власній машині.
Ось кілька додаткових правил:
- Ви повинні надіслати вихідний код та двійковий код, який можна виконувати в Linux x64
- Вихідний код повинен бути коротшим за 1 МіБ, у разі складання він також прийнятний, якщо лише двійковий файл малий.
- Ви не повинні включати число, яке потрібно обчислити у вашому двійковому коді, навіть замасковано. Кількість має бути обчислена під час виконання.
- Мій комп'ютер має два ядра; вам дозволяється використовувати паралелізм
Я взяв невелику реалізацію з Інтернету, яка працює приблизно за 4,5 секунди. Перемогти це не повинно бути дуже складно, якщо припустити, що у вас хороший алгоритм.
phi = (1+sqrt(5))/2