이것은 피보나치 수에 관한 또 다른 도전입니다.
목표는 가능한 빨리 20'000'000 번째 피보나치 수 를 계산하는 것 입니다. 10 진수 출력은 약 4MiB입니다. 그것은 시작합니다 :
28543982899108793710435526490684533031144309848579
출력의 MD5 합계는
fa831ff5dd57a830792d8ded4c24c2cb
실행하는 동안 숫자를 계산하고 결과를에 넣는 프로그램을 제출해야합니다 stdout
. 내 컴퓨터에서 측정 한 가장 빠른 프로그램이 승리합니다.
몇 가지 추가 규칙은 다음과 같습니다.
- x64 Linux에서 실행 가능한 소스 코드와 바이너리를 제출해야합니다.
- 소스 코드는 1MiB보다 짧아야합니다. 어셈블리의 경우 바이너리 만 작은 경우에도 허용됩니다.
- 위장 된 방식으로도 이진수로 계산할 숫자를 포함해서는 안됩니다. 숫자는 런타임에 계산해야합니다.
- 내 컴퓨터에는 두 개의 코어가 있습니다. 당신은 병렬 처리를 사용할 수 있습니다
나는 약 4.5 초 만에 실행되는 인터넷에서 작은 구현을했습니다. 좋은 알고리즘이 있다고 가정하면이를이기는 것은 어렵지 않습니다.
phi = (1+sqrt(5))/2