博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
矩阵快速幂,矩阵加法,矩阵乘法
阅读量:7052 次
发布时间:2019-06-28

本文共 1645 字,大约阅读时间需要 5 分钟。

转载自大神脑钊文:http://blog.csdn.net/wzw1376124061/article/details/52492665

#include
#include
#include
#include
#include
#include
using namespace std; int n,k; int mod; //n*n阶的矩阵;k是sum=A^1+A^2+.....+A^k;m是被模的元素 struct Matrix{ int matrix[50][50]; Matrix(int a=0){ memset(matrix,0,sizeof(matrix)); //矩阵清零 if(a==1) //单位矩阵 for(int i=0;i<50;i++) matrix[i][i]=1; } }m; Matrix operator * (Matrix a,Matrix b){ //矩阵乘法 Matrix res; memset(res.matrix,0,sizeof(res.matrix)); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) for(int k=1;k<=n;k++) res.matrix[i][j]=(res.matrix[i][j]+(a.matrix[i][k]*b.matrix[k][j])%mod)%mod; return res; } Matrix operator + (Matrix a,Matrix b){ //矩阵加法 Matrix res; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) res.matrix[i][j]=(a.matrix[i][j]+b.matrix[i][j])%mod; return res; } Matrix operator ^ (Matrix a,int k){ //矩阵快速幂 bool flag=false; Matrix ans=1; while(k){ if(k&1){ if(flag)ans=ans*a; else ans=a; flag=true; } a=a*a; k>>=1; } return ans; } Matrix sum(int k){ //求sum( S(k) )= A + A2 + A3 + …+ Ak if(k==1)return m; //递归回去 else{ Matrix tmp=sum(k>>1); //sum( S(k/2) ) if(k&1){ //k为奇数 Matrix tmp2=m^((k>>1)+1); return tmp+tmp2+tmp*tmp2; } else{ Matrix tmp2=m^(k>>1); return tmp+tmp*tmp2; //sum( S(k/2) )*(tmp2+1) } } } int main(){ int i,j; Matrix ans; scanf("%d%d%d",&n,&k,&mod); for(i=1;i<=n;i++) for(j=1;j<=n;j++){ scanf("%d",&m.matrix[i][j]); m.matrix[i][j]%=mod; } ans=sum(k); for(i=1;i<=n;i++,puts("")) for(j=1;j<=n;j++) printf("%d ",ans.matrix[i][j]); return 0; }

转载于:https://www.cnblogs.com/brodrinkwater/p/7528017.html

你可能感兴趣的文章
nginx实现反向代理,以反向代理tomcat为例
查看>>
团队项目冲刺5
查看>>
poj3254 Corn Fields(状压dp)
查看>>
方便记忆的电话号码
查看>>
+CIMG+彩色图片边缘提取实验记录_canny/hough transfrom
查看>>
BZOJ2179:FFT快速傅立叶(FFT)
查看>>
C#面向对象课程两大特性——封装、继承 12月23日
查看>>
Scala-基础-变量与常量
查看>>
法线贴图的一些总结
查看>>
mysql常用命令总结
查看>>
C# Azure-让http自动跳转到https链接
查看>>
寻找符合条件的整数
查看>>
一:依使初衷
查看>>
Linux设备驱动之USB
查看>>
Active Desktop--桌面字体背景被修改
查看>>
网页中自动获取访问用户所在城市的接口插件
查看>>
WAP端 经验记录2
查看>>
锋利jquery第三章案例 总结
查看>>
Software: MPEG-7 Feature Extraction Library
查看>>
实习日记7.21
查看>>