矩阵乘法
2016-03-30 21:58
183 查看
一般情况下,矩阵乘法都是要结合快速幂来使用的(⊙o⊙)哦>o<
只有当矩阵1的列数与矩阵2的行数相等时才可以相乘
这个东东是不满足交换律的(⊙o⊙)哦>o<,但是还是满足结合律的
首先,举个栗子—哒哒哒…
新矩阵第i行第j列的数——矩阵1第i行的m个数与矩阵2第j列的m个数对应相乘之和
eg.1=1*0+1*1
3=1*2+1*1
代码实现:>o<
只有当矩阵1的列数与矩阵2的行数相等时才可以相乘
这个东东是不满足交换律的(⊙o⊙)哦>o<,但是还是满足结合律的
首先,举个栗子—哒哒哒…
新矩阵第i行第j列的数——矩阵1第i行的m个数与矩阵2第j列的m个数对应相乘之和
eg.1=1*0+1*1
3=1*2+1*1
代码实现:>o<
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int main(){ int p,m,q;//矩阵1 p行m列,矩阵2 m行q列 scanf("%d%d%d",&p,&m,&q); int Matrix1[p+1][m+1],Matrix2[m+1][q+1],ans[p+1][q+1]; for(int i=1;i<=p;i++) for(int j=1;j<=m;j++) scanf("%d",&Matrix1[i][j]); for(int i=1;i<=m;i++) for(int j=1;j<=q;j++) scanf("%d",&Matrix2[i][j]); memset(ans,0,sizeof(ans)); for(int i=1;i<=p;i++) for(int j=1;j<=q;j++){ for(int k=1;k<=m;k++) ans[i][j]+=Matrix1[i][k]*Matrix2[k][j];//新矩阵第i行第j列的数——矩阵1第i行的m个数与矩阵2第j列的m个数对应相乘之和 } for(int i=1;i<=p;i++){ for(int j=1;j<=q;j++) printf("%d ",ans[i][j]); cout<<endl; } return 0; }
相关文章推荐
- C指针错误(3)-链表的尾指针要赋值NULL
- python操作 hbase 数据
- 关于我在SQL server中遇到的一些问题
- HDU-2106(decimal system)(进制转换)
- 第九章:BOM浏览器对象模型
- 数据挖掘(六):预测
- Spring的AOP面向切面的一些小结
- WCF开山篇__图片传输
- 实现数组的反向输出
- 机器学习基础(三十五)—— 协同过滤(从匹配用户到匹配商品)
- POJ 2689 区间素数
- Android 使用外部已经建立好的sqlite数据库
- bash特性
- Shell - 11
- ViewController/生命周期
- 【MVC 4】5.SportsSore —— 一个真实的应用程序
- mysql更改表结构:添加、删除、修改字段、调整字段顺序
- 软件工程---单元测试报告
- Linux内核分析作业第六周
- 认识与学习bash