矩阵乘法 求斐波那契数列
来源:互联网 发布:数据库中的主键怎么设 编辑:程序博客网 时间:2024/05/14 04:49
先简单介绍一下矩阵乘法求斐波那契数列的原理
问题的求解就变成的解决,而幂的求可用二分法来求
f(n) 是第n项的值。
f(1)= 1; f(2) =1;
f(n)= f(n-1) + (n-2)
下面的介绍是我从网上查到了,收益匪浅。
分两步推导:
#include <cstdio>#include <cstdlib>#include <iostream>#include <string.h>#include <algorithm>using namespace std;struct matrix{int a[2][2];};matrix mul(matrix &x, matrix &y){matrix res;int sum;for(int i=0; i<2; i++)for(int j=0; j<2; j++){sum = 0;for(int k=0; k<2; k++)sum += x.a[i][k]*y.a[k][j];res.a[i][j] = sum;}x = res;return x;}matrix pow(matrix x, long e){matrix ans, temp;if(e == 0){ans.a[0][0]=1;ans.a[0][1]=0;ans.a[1][0]=0;ans.a[1][1]=1;return ans;}if(e == 1)return x;temp = pow(x, e>>1);ans = mul(temp, temp);if(e&1)ans = mul(ans,x);return ans;}int main(){int n;matrix ans;matrix base ={{1,1,1,0}};while(~scanf("%d", &n)){if(!n) printf("0\n");else{ans = pow(base, n-1);printf("%d\n",ans.a[0][0]);}}system("pause");return 0;}
- 矩阵乘法 求斐波那契数列
- 矩阵乘法 求斐波那契数列
- 矩阵乘法求斐波那契数列
- 矩阵乘法求斐波那契数列
- 矩阵乘法求斐波那契数列(快速幂)
- 斐波那契数列-矩阵乘法
- SSL 1529 斐波那契数列Ⅱ 矩阵乘法
- SSL 1530 斐波那契数列Ⅲ 矩阵乘法
- SSL 1531 斐波那契数列Ⅳ 矩阵乘法
- 洛谷1349 广义斐波那契数列 【矩阵乘法】
- Codevs 1574 广义斐波那契数列(矩阵乘法)
- 【矩阵乘法】广义斐波那契数列
- 矩阵乘法解fibonacci斐波那契数列
- 利用矩阵求斐波那契数列
- 矩阵快速幂,求斐波那契数列
- 斐波那契数列三种实现+矩阵乘法+矩阵cimi
- HDOJ 4549 - M斐波那契数列 费马小定理,矩阵乘法
- [NOI2011]兔农(斐波那契数列+乘法逆+矩阵加速)
- hdu 题目1053Entropy (赫夫曼树)
- 为SubSonic3.0的查询(SubSonic.Query.Select和存储过程)添加更多的执行功能
- 学习Linux系统的十一点建议 .
- hdu - 4642 - Fliping game(博弈)
- hdoj2266
- 矩阵乘法 求斐波那契数列
- 数据挖掘著名学者的网站
- 《我的第一本c++书》学习笔记:STL之迭代器指针的使用注意事项
- POJ 1269 Intersecting Lines
- [smart210] Nand Flash K9F4G08U0B 的配置与读写控制(二)
- 今天A了好多畅通工程————hdu-1874再续畅通工程
- SQL Server 2008提示评估期已过期
- hdu 4632 Palindrome subsequence
- 分享职场心得《16》