矩阵快速乘法---代码
来源:互联网 发布:夏普阿里云电视 编辑:程序博客网 时间:2024/05/29 16:27
矩阵乘法的核心代码:
while(N) { if(N&1) res=res*A; n>>=1; A=A*A; }
然后是示例代码:
#include <cstdlib>#include <cstring>#include <cstdio>#include <iostream> using namespace std;int N;struct matrix{ int a[3][3];}origin,res;matrix multiply(matrix x,matrix y){ matrix temp; memset(temp.a,0,sizeof(temp.a)); for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { for(int k=0;k<3;k++) { temp.a[i][j]+=x.a[i][k]*y.a[k][j]; } } } return temp;}void init(){ printf("随机数组如下:\n"); for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { origin.a[i][j]=rand()%10; printf("%8d",origin.a[i][j]); } printf("\n"); } printf("\n"); memset(res.a,0,sizeof(res.a)); res.a[0][0]=res.a[1][1]=res.a[2][2]=1; //将res.a初始化为单位矩阵 }void calc(int n){ while(n) { if(n&1) res=multiply(res,origin); n>>=1; origin=multiply(origin,origin); } printf("%d次幂结果如下:\n",n); for(int i=0;i<3;i++) { for(int j=0;j<3;j++) printf("%8d",res.a[i][j]); printf("\n"); } printf("\n");}int main(){ while(cin>>N) { init(); calc(N); } return 0;}
0 0
- 矩阵快速乘法---代码
- 矩阵乘法&&快速幂
- 矩阵乘法 矩阵快速幂
- 一个矩阵乘法代码
- 矩阵快速幂,矩阵加法,矩阵乘法
- POJ 3233 快速矩阵乘法
- 矩阵乘法快速幂模板
- 矩阵的乘法和矩阵快速幂
- poj3070(矩阵快速幂,矩阵乘法)
- 51nod 1137 矩阵乘法(矩阵快速乘法)
- 矩阵乘法+快速幂——【模板】矩阵快速幂
- 【矩阵乘法+快速幂】数学序列
- poj 3070 Fibonacci (快速矩阵乘法)
- hdu1575(矩阵乘法快速幂)
- 【poj3070】Fibonacci (矩阵乘法+快速幂)
- Fibonacci - POJ 3070 矩阵乘法快速幂
- ACM 矩阵乘法模板(T_T)+快速幂
- HLG-1126(矩阵乘法+快速幂)
- 《数据结构、算法与应用》9.(C++实现顺序表)
- Word技巧之将目录放置文档的左侧
- Oracle,ORA-01078,LRM-00109
- group by & count分组统计数量
- 动态规划算法的运用
- 矩阵快速乘法---代码
- css link和@import标签的区别
- 扩展easyui 的表单验证
- 给条件语句加上括号
- 增加oslec
- android的armeabi跟armeabi-v7a
- ios申请真机调试( xcode 5)详细解析
- GDB使用小知识
- IO设计模式介绍