前言
是的,没错,斐波那契数列除了递推、递归算法之外,还有更加高效的求解方法,那就是矩阵运算+快速幂。
思路:
可以先利用矩阵运算的性质将通项公式变成幂次形式,然后用平方倍增(快速幂)的方法求解第 n 项。
首先我们定义向量
Xn=[an an−1],边界:X1=[a1 a0]
然后我们可以找出矩阵:
A = [ 1 1 1 0 ] A=\left[ \begin{matrix} 1 & 1 \\ 1& 0 \end{matrix} \right] A=[1110]
则有:
Xn=Xn−1×A
所以&