ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

矩阵递推斐波那契数列

2022-08-30 23:03:27  阅读:187  来源: 互联网

标签:Fib begin end 矩阵 斐波 base bmatrix 那契 递推


  斐波那契数列都很熟悉,它满足, \(F_{n} = \begin{cases}1&n\leqslant2\\F_{n - 1} + F_{n - 2}&n > 2\end{cases}\) 。
因为\(F_n\)从第三项开始是不断的递推下去的,所以我们可以考虑用矩阵加速递推
  设\(Fib\left( n\right)\)表示一个\(1×2\)的矩阵\(\begin{bmatrix}F_n& F_{n - 1}\end{bmatrix}\).我们希望根据\(Fib\left( n - 1\right) = \begin{bmatrix}F_{n - 1}&F_{n - 2}\end{bmatrix}\)推出\(Fib\left( n\right)\)。
  因为\(Fib_n = Fib_{n - 1} + Fib_{n - 2}\),所以我们引入一个辅助矩阵\(base\),第一列应该为\(\begin{bmatrix}1\\1\end{bmatrix}\),这样在进行矩阵乘法运算的时候才能令\(F_{n - 1}\)和\(F_{n - 2}\)相加,从而得出\(F_{n}\),同理为了得出\(F_{n - 1}\),矩阵\(base\)的第二列应该为\(\begin{bmatrix}1\\0\end{bmatrix}\).
  综上所述: \(base = \begin{bmatrix}1&1\\1&0\end{bmatrix}\)原式化为$$\begin{bmatrix}F_{n - 1}&F_{n - 2}\end{bmatrix}×\begin{bmatrix}1&1 \\ 1&0\end{bmatrix} = \begin{bmatrix}F_{n - 1} × 1 + F_{n - 2}×1&F_{n - 1}×0 + F_{n - 2}×1\end{bmatrix} = \begin{bmatrix} F_{n}&F_{n - 1} \end{bmatrix}$$
  这样我们就可以根据\(\begin{bmatrix}F_{2}&F_{1}\end{bmatrix}\)一直与\(\begin{bmatrix}1&1\\1&0\end{bmatrix}\)进行矩阵乘法运算从而递推出\(\begin{bmatrix}F_{n}&F_{n - 1}\end{bmatrix}\)。
  那么定义\(ans = \begin{bmatrix}F_{2}&F_{1}\end{bmatrix},base = \begin{bmatrix}1&1\\1&0\end{bmatrix}\),通过观察发现从\(\begin{bmatrix}F_{2}&F_{1}\end{bmatrix}\)递推出\(\begin{bmatrix}F_{n}&F_{n - 1}\end{bmatrix}\)只需要做\(n - 2\)次矩阵乘法。所以可以得出$$Fib\left( n\right) = ans×base^{n - 2}$$

标签:Fib,begin,end,矩阵,斐波,base,bmatrix,那契,递推
来源: https://www.cnblogs.com/Haven-/p/16641267.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有