矩阵的乘法
2014-05-26 17:27
190 查看
/* *程序的版权和版本声明部分: *Copyright(c)2014,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:田成琳 *完成日期:2014 年 5 月 26 日 *版本号:v1.0 *对任务及求解方法的描述部分: *问题描述:输入两个矩阵。输出矩阵乘法运算的结果,如果不能进行矩阵乘法运算,则输出一行“Error”。 如果第1个矩阵的行数和列数为 n1, m1,第2个矩阵的行数和列数为 n2, m2。 矩阵乘法运算规则为: 矩阵1的第1行的m1个元素与矩阵2的第1列的n2个元素依次相乘的和为结果矩阵的第1行的第1个元素 矩阵1的第2行的m1个元素与矩阵2的第1列的n2个元素依次相乘的和为结果矩阵的第2行的第1个元素 …… 矩阵1的第n1行的…… *输入描述: Input 输入n组数据 每组数据的输入格式如下: 第1行输入两个整数 n1, m1(1<=n1<=100,1<=m1<=100),分别代表第1个矩阵的行数和列数。 接下来输入n1行数据,每行m1个float数,表示输入第1个矩阵的各元素的值。 下一行输入两个整数 n2, m2(1<=n2<=100,1<=m2<=100),分别代表第2个矩阵的行数和列数。 接下来输入n2行数据,每行m2个float数,表示输入第2个矩阵的各元素的值。 *程序输出:Output 每组数据输出一个结果矩阵 每组输出数据中间有一空行 结果矩阵元素为浮点数,要求输出为小数点后2位 元素与元素之间隔一空格 *问题分析: *算法设计: */ #include<iostream> #include<iomanip> using namespace std; int main() { int n; float a[101][101],b[101][101],c[101][101]; int n1,m1,n2,m2; void input(float x[101][101],int n,int m); void mulMatrix(float a[101][101],int n1,int m1,float b[101][101],int n2,int m2,float c[101][101]); cin>>n; while(n--) { cin>>n1>>m1; input(a,n1,m1); cin>>n2>>m2; input(b,n2,m2); if(m1!=n2) { cout<<"Error"<<endl; continue; } mulMatrix(a,n1,m1,b,n2,m2,c); cout<<setiosflags(ios::fixed); cout<<setprecision(2); for(int i=1; i<=n1; i++) { for(int j=1; j<=m2; j++) if(j!=m2) cout<<c[i][j]<<' '; else cout<<c[i][j]; cout<<endl; } cout<<endl; } return 0; } void mulMatrix(float a[101][101],int n1,int m1,float b[101][101],int n2,int m2,float c[101][101]) { float sum; for(int i=1; i<=n1; i++) for(int j=1; j<=m2; j++) { sum=0; for(int k=1; k<=m1; k++) { sum+=a[i][k]*b[k][j]; } c[i][j]=sum; } } void input(float x[101][101],int n,int m) { for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) cin>>x[i][j]; }
运行结果:
心得体会:。
相关文章推荐
- 【hdu1005】矩阵快速乘法,递归二分形式
- [caioj 1483,利用矩阵乘法解决的经典题目五]成群的细菌
- MapReduce实现大矩阵乘法及代码实现
- Strassen矩阵乘法 + 快速计算乘方的算法 + 矩阵的次幂
- [BZOJ4002]JLOI2015有意义的字符串|矩阵乘法
- [BZOJ1898][ZJOI2005]沼泽鳄鱼(矩阵乘法)
- BZOJ_4002_[JLOI2015]有意义的字符串_矩阵乘法
- 用verilog表示两个4x4矩阵的乘法运算?及单个矩阵的求逆
- poj 3070 Fibonacci + 矩阵乘法(矩阵快速幂)
- 矩阵乘法题目总结
- cuda中用cublas库做矩阵乘法
- 【甘道夫】Mapreduce实现矩阵乘法的算法思路
- 理解矩阵乘法
- 【HDOJ5950】Recursive sequence(矩阵乘法,快速幂)
- (Matrix67)十个利用矩阵乘法解决的经典题目
- hdu 3221 矩阵乘法和 A^x = A^(x % Phi(C) + Phi(C)) (mod C)(x>=phi(c))
- CSAPP第五次实验(cahce) 局部性对矩阵乘法的影响
- CF781D Axel and Marston in Bitland [倍增 矩阵乘法 bitset]
- 算法导论-25.1-最短路径与矩阵乘法
- [OpenGL]矩阵乘法引发的血案