El ésimo número de Fibonacci se puede calcular en tiempo lineal utilizando la siguiente recurrencia:
def fib(n):
i, j = 1, 1
for k in {1...n-1}:
i, j = j, i+j
return i
El ésimo número de Fibonacci también puede calcularse como [ φ n / √. Sin embargo, esto tiene problemas con problemas de redondeo incluso paranrelativamente pequeño. Probablemente hayformas de evitar esto,pero prefiero no hacerlo.
¿Hay una manera eficiente (en el valor logarítmico o mejor) algoritmo para calcular el n ésimo número de Fibonacci que no se basa en la aritmética de punto flotante? Suponga que las operaciones de enteros ( + , - , × , / ) se pueden realizar en tiempo constante.