Die te Fibonacci-Zahl kann in linearer Zeit unter Verwendung der folgenden Wiederholung berechnet werden:
def fib(n):
i, j = 1, 1
for k in {1...n-1}:
i, j = j, i+j
return i
Die - te Fibonacci - Zahl kann auch wie folgt berechnet werden [ φ n / √. Dies hat jedoch Probleme mit Rundungsproblemen für selbst relativ kleinen. Es gibt wahrscheinlichMöglichkeiten, dies zuumgehen, aber ich würde das lieber nicht tun.
Gibt es einen effizienten (logarithmischen im Wert oder besser) Algorithmus, um die n- te Fibonacci-Zahl zu berechnen , die nicht auf Gleitkomma-Arithmetik beruht? Nehmen Sie an, dass Ganzzahloperationen ( + , - , × , / ) in konstanter Zeit ausgeführt werden können.