Il -esimo numero di Fibonacci può essere calcolata in tempo lineare utilizzando la seguente ricorrenza:
def fib(n):
i, j = 1, 1
for k in {1...n-1}:
i, j = j, i+j
return i
Il -esimo numero di Fibonacci può anche essere calcolata come [ φ n / √. Tuttavia, questo ha problemi con arrotondamento problemi anche per relativamente piccolon. Probabilmente ci sonomodi per aggirare questo,ma preferirei non farlo.
Esiste un efficiente (logaritmica del valore di o migliore) algoritmo per calcolare il n -esimo numero di Fibonacci che non si basa su aritmetica in virgola mobile? Supponiamo che le operazioni di numero intero ( + , - , × , / ) possano essere eseguite in tempo costante.