피보나치 수 회 반복은 다음을 사용하여 선형 시간에 계산 될 수있다 :
def fib(n):
i, j = 1, 1
for k in {1...n-1}:
i, j = j, i+j
return i
피보나치 수 번째는 다음과 같이 계산 될 수있다 [ φ의 N / √. 그러나 이것은 비교적 작은n에대한 반올림 문제에도 문제가 있습니다. 아마도이주위에 방법이있지만 오히려 그렇게하지 않을 것입니다.
부동 소수점 산술에 의존하지 않는 n 번째 피보나치 수 를 계산 하는 효율적인 (값 이상의 로그 ) 알고리즘이 있습니까? 정수 연산 ( + , − , × , / )을 일정한 시간에 수행 할 수 있다고 가정합니다 .
5
제안으로 피보나치 수에 관한 Wikipedia 기사에는 많은 방법이 있습니다.
—
가명
cf. stackoverflow.com/questions/14661633/… 및 그 안의 링크.
—
윌 네스