今天在B站看到一个视频《斐波那契数列,全网最优解》,UP主给出了求解斐波那契数列通项公式的推导思路。
因为我早年也对这种数列有过研究,而且记得一个更简单的解法,所以记录一下。
斐波那契数列是这样一种数列:
a(1) = a(2) = 1
a(n) = a(n-1) + a(n-2), n>=2
上面是通过递推公式的形式给出的定义,我们注意到递推公式是前两项的线性组合。而线性变换可以通过矩阵表示,我们不妨转换思路来求向量
(an,an+1)
的通项公式
我们写出根据a(n-1), a(n)推得a(n), a(n+1)的递推公式
{an=anan+1=an−1+an
写成矩阵的形式
(anan+1)=(an−1an)[0111]
我们可以看到这就类似等比数列的递推公式,只不过公比q是个矩阵,等比数列通项公式是
an=a1∗qn−1
类比得到,上面递推公式的通项公式
(anan+1)=(a1a2)[0111]n−1=(11)[0111]n−1
BTW: 其实这里矩阵和数还是有点区别的,要利用矩阵乘法有结合律(本来是先做向量和矩阵乘法的,通项公式是先做了后面的矩阵乘法最后再让向量左乘矩阵),而且是方阵才能求幂,而这里都是满足的。
对于斐波那契数列的变形也特别容易推导,无论是改变首项还是改变递推关系,包括把两项和变成前n项的线性组合,只要还是线性的,就可以这么推导。