矩阵乘法
来源:互联网 发布:验证dss算法的有效性 编辑:程序博客网 时间:2024/06/13 08:42
题目描述
如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的:
原型:
voidmatrix_multiply(int *m1,int *m2,int *r, int x, int y, int z);
输入参数:
int *m1:x行y列的矩阵(array1[x][y])
int *m2:y行z列的矩阵(array2[y][z])
int x:矩阵m1的行数
int y:矩阵m1的列数/矩阵m2的行数
int z:矩阵m2的列数
输出参数:
int *r:矩阵m1, m2相乘的结果(array3[x][z])
返回值:
void
输入描述:
输入说明:1、第一个矩阵的行数2、第一个矩阵的列数和第二个矩阵的行数3、第二个矩阵的列数4、第一个矩阵的值5、第二个矩阵的值
输出描述:
输出两个矩阵相乘的结果
输入例子:
2223 88 09 018 9
输出例子:
171 7272 0
#include<iostream> #include<string> #include<algorithm> using namespace std;int main(){int n, m, z;while (cin>>n>>m>>z)//按照矩阵乘法规则,一步步来即可{int **a = new int*[n];for (int i = 0; i < n; i++)a[i] = new int[m];int **b = new int*[m];for (int i = 0; i < m; i++)b[i] = new int[z];int **c = new int*[n];for (int i = 0; i < n; i++)c[i] = new int[z];for (int i = 0; i < n;i++)for (int j = 0; j < m; j++)//记得矩阵初始化为0a[i][j] = 0;for (int i = 0; i < m; i++)for (int j = 0; j < z; j++)b[i][j] = 0;for (int i = 0; i < n; i++)for (int j = 0; j < z; j++)c[i][j] = 0;for (int i = 0; i < n;i++)for (int j = 0; j < m; j++)cin >> a[i][j];for (int i = 0; i < m; i++)for (int j = 0; j < z; j++)cin >> b[i][j];for (int i = 0; i < n;i++)for (int j = 0; j < z; j++){for (int k = 0; k < m; k++)c[i][j] += a[i][k] * b[k][j];}for (int i = 0; i < n;i++)for (int j = 0; j < z; j++){if (j == z - 1)cout << c[i][j] << endl;else cout << c[i][j] << ' ';}}return 0;}
asd
0 0
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- Dual Palindromes(USACO)
- codeforces 682 a 解题报告 Alyona and Numbers 数论基础
- [Leetcode] Best Time to Buy and Sell Stock
- Genymotion添加模拟器时报Unable to create virtual device,Server returned HTTP status code xxx
- 部分复杂度问题
- 矩阵乘法
- TTL(time to live)生存时间
- Linux发行版的基础目录名称、命名法则及功能规定
- 子查询
- Linux的发行版以及不同发行版之间的联系和不同
- #error命令
- JZOJ 4783. Osu
- LeetCode[268] Missing Number
- 昆仑万维