我想知道如何找到一个非常大的n值(例如1000000)的斐波那契数列的第n个项。使用年级递归方程fib(n)=fib(n-1)+fib(n-2),需要2-3分钟才能找到第50个项!
fib(n)=fib(n-1)+fib(n-2)
谷歌搜索之后,我开始了解Binet的公式,但是不适用于n> 79的值,因为这里说的
就像我们找到质数一样,是否有一种算法可以做到?
您可以使用矩阵求幂方法(线性递归方法)。您可以在此博客中找到详细的说明和过程。运行时间为 O (log n )。
我认为没有更好的方法可以做到这一点。