3
计算第个斐波那契数的高效算法
可以使用以下递归在线性时间中计算第个斐波那契数:nnn def fib(n): i, j = 1, 1 for k in {1...n-1}: i, j = j, i+j return i 第个斐波那契数也可以计算为。但是,这对于甚至较小的都有舍入问题。可能有一些解决方法,但我宁愿不这样做。[ φ Ñ / √nnnn[φn/5–√][φn/5]\left[\varphi^n / \sqrt{5}\right]nnn 是否有一种有效的算法(值为或更好的对数)来计算不依赖浮点算术的第个斐波那契数?假定整数运算(,,,)可在恒定的时间来执行。n + - × /nnnnnn+++−−-××\times///