矩阵乘法与斐波那契
来源:互联网 发布:ubuntu chrome 安装 编辑:程序博客网 时间:2024/05/17 08:20
矩阵乘法
A*B,只有当A的列数等于B的行数时才有意义,即A为
即
由定义可知,矩阵乘法满足结合律,但不满足交换律。
应用
矩阵乘法可以用来优化很多线性递推式,下面以求斐波那契为例。
我们知道,
那么,如何设计矩阵A呢?
显然,A是一个2*2的矩阵,设
剩下的事就交给快速幂了。
下面附上poj3070的代码:
#include<cstdio>#include<cstring>#include<algorithm>#define maxn 5#define tt 10000using namespace std;inline char nc(){ static char buf[100000],*i=buf,*j=buf; return i==j&&(j=(i=buf)+fread(buf,1,100000,stdin),i==j)?EOF:*i++;}inline int _read(){ char ch=nc();int sum=0,p=1; while(ch!='-'&&!(ch>='0'&&ch<='9'))ch=nc(); if(ch=='-')p=-1,ch=nc(); while(ch>='0'&&ch<='9')sum=sum*10+ch-48,ch=nc(); return sum*p;}struct matrix{ int n,m,a[maxn][maxn]; matrix operator *(matrix&b){ matrix c;c.n=n;c.m=b.m; for(int i=1;i<=c.n;i++) for(int j=1;j<=c.m;j++){ c.a[i][j]=0; for(int k=1;k<=m;k++) (c.a[i][j]+=a[i][k]*b.a[k][j])%=tt; } return c; }};int n;matrix G,ans;matrix power(matrix x,int y){ if(y==1)return x; matrix c=power(x,y>>1); if(y&1)return c*c*x; else return c*c;}int main(){ freopen("fib.in","r",stdin); freopen("fib.out","w",stdout); n=_read(); while(n!=-1){ G.n=G.m=2;G.a[1][1]=G.a[1][2]=G.a[2][1]=1;G.a[2][2]=0; ans.n=2;ans.m=1;ans.a[1][1]=1;ans.a[2][1]=0; if(n==0){ printf("0\n");n=_read(); continue; } if(n==1){ printf("1\n");n=_read(); continue; } G=power(G,n-1); ans=G*ans; printf("%d\n",ans.a[1][1]); n=_read(); } return 0;}
阅读全文
0 0
- 矩阵乘法与斐波那契
- 斐波那契数列-矩阵乘法
- 斐波那契_矩阵乘法
- 斐波那契序列 集锦 矩阵乘法
- hdu5451 矩阵乘法+斐波那契 + 循环节
- SSL 1529 斐波那契数列Ⅱ 矩阵乘法
- SSL 1530 斐波那契数列Ⅲ 矩阵乘法
- SSL 1531 斐波那契数列Ⅳ 矩阵乘法
- 洛谷1349 广义斐波那契数列 【矩阵乘法】
- Codevs 1574 广义斐波那契数列(矩阵乘法)
- 斐波那契矩阵乘法加质因数分解
- Cogs 1708. 斐波那契平方和(矩阵乘法)
- 【矩阵乘法】广义斐波那契数列
- 矩阵乘法解fibonacci斐波那契数列
- Codeforces Round #118 (Div. 2) :C (矩阵快速幂)类似与斐波那契+矩阵乘法
- 递归与动态规划---斐波那契系列问题的递归,动态规划与矩阵乘法
- 斐波那契数列三种实现+矩阵乘法+矩阵cimi
- 矩阵与斐波那契数列
- Android
- Hadoop是什么?
- node图片处理工具gm的使用:图片水印、图片验证码、图片裁剪示例
- 【Android】Genymotion模拟器安装使用及VirtualBox虚拟机搬家记录
- Vue.directive()的用法和实例
- 矩阵乘法与斐波那契
- python+requests接口自动化测试框架实例详解教程(米兔888)
- 从初一下学期开始每一次的大考总结
- 迷宫问题
- 卢俊卿谈亲情让城市充满温暖
- 欢迎使用CSDN-markdown编辑器
- python3 [爬虫入门实战] 爬虫之使用selenium 爬取百度招聘内容并存mongodb
- Python学习笔记(21)-目录遍历
- ^