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