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