- го числа Фибоначчи может быть вычислен в линейное время с использованием следующего повторения:
def fib(n):
i, j = 1, 1
for k in {1...n-1}:
i, j = j, i+j
return i
- го числа Фибоначчи также может быть вычислена как [ ф п / √. Тем не менее, это имеет проблемы с проблемами округления даже для относительно небольшихn. Наверное, естьспособы обойти это,но я бы не стал этого делать.
Существует ли эффективный (логарифмический по значению или лучше) алгоритм для вычисления n- го числа Фибоначчи, которое не зависит от арифметики с плавающей запятой? Предположим, что целочисленные операции ( + , - , × , / ) могут выполняться за постоянное время.