一尘不染

找出非常大的'n'的n个斐波那契数

algorithm

我想知道如何找到一个非常大的n值(例如1000000)的斐波那契数列的第n个项。使用年级递归方程fib(n)=fib(n-1)+fib(n-2),需要2-3分钟才能找到第50个项!

谷歌搜索之后,我开始了解Binet的公式,但是不适用于n>
79的值,因为这里说的

就像我们找到质数一样,是否有一种算法可以做到?


阅读 270

收藏
2020-07-28

共1个答案

一尘不染

您可以使用矩阵求幂方法(线性递归方法)。您可以在博客中找到详细的说明和过程。运行时间为 O (log n )。

我认为没有更好的方法可以做到这一点。

2020-07-28