矩阵
矩阵的乘法:
Matrix:
乘法: A*B ,需要A的列数=B的行数
矩阵 C = A*B
则: C[i,j] = ∑A[i,k]*B[k,j]
矩阵的乘法代码:
//矩阵的乘法 void mul(int A[][MAXN],int B[][MAXN])//A=A*B { int R[MAXN][MAXN]; memset(R,0,sizeof(R)); for(int k=0;k<N;k++) for(int i=0;i<N;i++)if(A[i][k]) for(int j=0;j<N;j++) R[i][j]+=A[i][k]*B[k][j]; /* 如果取余可能能加快计算 int R[MAXN][MAXN]; for(int i=0;i<N;i++) for(int j=0;j<N;j++) { long long sum = 0; for(int k=0;k<N;k++) sum+=A[i][k]*B[k][j]; R[i][j]=sum%MOD; } */ for(int i=0;i<N;i++) for(int j=0;j<N;j++) A[i][j]=R[i][j]; }
矩阵快速幂模板:
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 int n, k, M; 6 struct mat{ 7 int ma[65][65]; 8 mat() {memset(ma, 0, sizeof(ma));}//¹¹ÔìÁã¾ØÕó 9 mat(int a) //¹¹Ô쵥λ¾ØÕó 10 { 11 memset(ma, 0, sizeof(ma)); 12 for(int i=0; i<n; i++) 13 ma[i][i] = 1; 14 } 15 void operator *= (const mat &x)//¾ØÕó³Ë·¨ 16 { 17 mat tmp; 18 int i, j, k; 19 for( k=0; k<n; k++) 20 for( i=0; i<n; i++) 21 if(ma[i][k]) 22 { long long tot=0; 23 for( j=0; j<n; j++) 24 tot += ma[i][k]*x.ma[k][j]; 25 ma[i][j] = tot%M; 26 } 27 for(i=0; i<n; i++) 28 for(j=0; j<n; j++) 29 ma[i][j] = tmp.ma[i][j]; 30 } 31 }; 32 mat pow_mod(mat a, int b)//¾ØÕó¿ìËÙÃÝ 33 { 34 mat tmp = mat(1); 35 while(b>0) 36 { 37 if(b&1) tmp*=a; 38 b>>=1; 39 a*=a; 40 } 41 return tmp; 42 } 43 44 int main() 45 { 46 while(scanf("%d%d%d", &n, &k, &M)==3) 47 { 48 mat A, B; 49 for(int i=0; i<n; i++) 50 for(int j=0; j<n; j++) 51 scanf("%d", &A.ma[i][j]); 52 printf("\n\n"); 53 mat ans = pow_mod(A, k+1); 54 for(int i=0; i<n; i++) 55 { 56 for(int j=0; j<n; j++) 57 printf("%8d", ans.ma[i][j]); 58 printf("\n"); 59 } 60 } 61 return 0; 62 }
分类:
数据结构读书笔记
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理