C++实现:矩阵与向量相乘
C++实现:矩阵与向量相乘
本文将介绍如何使用C++编写程序,计算一个 n×m 的矩阵 A 和一个 m×1 的向量 b 的乘积 Ab。
问题描述
给定一个 n×m 的矩阵 A 和一个 m×1 的向量 b,计算它们的乘积 Ab。
输入格式:
第一行包含两个整数 n 和 m,分别表示矩阵 A 的行数和列数。
接下来的 n 行,每行包含 m 个整数,表示矩阵 A 的元素 aij (i=1,2,...,n, j=1,2,...,m)。
接下来的 m 行,每行包含一个整数,表示向量 b 的元素 bi (i=1,2,...,m)。
输出格式:
输出 n 行,每行一个整数,表示乘积 Ab 的元素 ci (i=1,2,...,n)。
数据范围:
1 ≤ n, m ≤ 100
0 ≤ aij, bi ≤ 1000
C++代码示例cpp#include #include
using namespace std;
int main() { int n, m; cin >> n >> m;
// 读取矩阵 A vector<vector<int>> A(n, vector<int>(m)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> A[i][j]; } }
// 读取向量 b vector<int> b(m); for (int i = 0; i < m; i++) { cin >> b[i]; }
// 计算乘积 Ab vector<int> c(n); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { c[i] += A[i][j] * b[j]; } }
// 输出结果 for (int i = 0; i < n; i++) { cout << c[i] << endl; }
return 0;}
代码解释
- 读取输入: 代码首先读取矩阵 A 的维度 (n, m) 以及矩阵 A 和向量 b 的元素。2. 存储数据: 使用二维向量
A存储矩阵 A 的元素,使用一维向量b存储向量 b 的元素。3. 计算乘积: 使用三层循环计算矩阵 A 和向量 b 的乘积。最外层循环遍历结果向量c的每个元素,第二层循环遍历矩阵 A 的每一列,最内层循环遍历矩阵 A 的每一行,并将对应元素相乘并累加到结果向量c中。4. 输出结果: 最后,代码将结果向量c的每个元素逐行输出。
总结
本文介绍了如何使用C++实现矩阵与向量的乘法运算。代码简洁易懂,并包含详细的解释,方便读者理解算法和实现。希望本文对您有所帮助。
原文地址: https://www.cveoy.top/t/topic/jpb 著作权归作者所有。请勿转载和采集!