矩阵相乘求斐波那契
2016-07-19 20:45
706 查看
高产。。。(保质保量???)
斐波那契数列相信大家一定非常熟悉嘿(不懂的现在举手,然后出去666)。斐波那契数列又怎么用矩阵来求呢??
首先,给大家普及一下矩阵相乘的知识,两个矩阵,一个下标为i,j,一个下标为j,k就可以相乘,相乘方法如下:
|4 3 1| |2 3 3|
|2 6 8| * |5 6 6|
(凑合着看吧。
就当成矩阵吧) |7 7 7|
这些数当然没什么含义,就是举个栗子而已。
用第一个的行与第二个的列进行操作,也就是两个的每个元素相乘然后加起来,做合成新矩阵的元素,如果上面两个矩阵相乘,答案就是这样的:
|30 37 37|
|90 98 98|
懂了吧,没懂就多看几遍嘿
我就直接用poj上的图了
这个中间的矩阵特别神奇,自己试试看,就是求斐波那契数列!!
所以求斐波那契数列的第N项就是中间的那个数列的N次方,N次方就用乘法,然后用斐波那契的矩阵乘一下就行了。
在这里先不涉及快速幂,这道题在poj3070要用快速幂,下次再更,拜拜~~
斐波那契数列相信大家一定非常熟悉嘿(不懂的现在举手,然后出去666)。斐波那契数列又怎么用矩阵来求呢??
首先,给大家普及一下矩阵相乘的知识,两个矩阵,一个下标为i,j,一个下标为j,k就可以相乘,相乘方法如下:
|4 3 1| |2 3 3|
|2 6 8| * |5 6 6|
(凑合着看吧。
就当成矩阵吧) |7 7 7|
这些数当然没什么含义,就是举个栗子而已。
用第一个的行与第二个的列进行操作,也就是两个的每个元素相乘然后加起来,做合成新矩阵的元素,如果上面两个矩阵相乘,答案就是这样的:
|30 37 37|
|90 98 98|
懂了吧,没懂就多看几遍嘿
我就直接用poj上的图了
这个中间的矩阵特别神奇,自己试试看,就是求斐波那契数列!!
所以求斐波那契数列的第N项就是中间的那个数列的N次方,N次方就用乘法,然后用斐波那契的矩阵乘一下就行了。
在这里先不涉及快速幂,这道题在poj3070要用快速幂,下次再更,拜拜~~
相关文章推荐
- 使用android studio 出现Manifest merger failed with multiple errors
- 前端框架集中营
- 作业
- 对拍
- 《SpringMVC数据绑定入门》笔记
- hdu 1159 Common Subsequence(最长公共子序列问题)
- C结构体之位域(位段)
- 某个比赛:Problem H: 1的最少个数
- LCIS
- androidManifest
- 【BZOJ2768】冠军调查,网络流之最小割
- socket05---recv && send使用,回射客户端
- Ffmpeg 定位文件(seek file)
- Bear and Three Balls(sort)
- 43. Multiply Strings
- 正则表达式整理格式
- The remote SSH server rejected X11 forwarding request
- LIS (n*logn)
- jQuery 之 获取并设置 CSS 类(十)
- 《剑指offer》数组中出现次数超过一半的数字