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;}

代码解释

  1. 读取输入: 代码首先读取矩阵 A 的维度 (n, m) 以及矩阵 A 和向量 b 的元素。2. 存储数据: 使用二维向量 A 存储矩阵 A 的元素,使用一维向量 b 存储向量 b 的元素。3. 计算乘积: 使用三层循环计算矩阵 A 和向量 b 的乘积。最外层循环遍历结果向量 c 的每个元素,第二层循环遍历矩阵 A 的每一列,最内层循环遍历矩阵 A 的每一行,并将对应元素相乘并累加到结果向量 c 中。4. 输出结果: 最后,代码将结果向量 c 的每个元素逐行输出。

总结

本文介绍了如何使用C++实现矩阵与向量的乘法运算。代码简洁易懂,并包含详细的解释,方便读者理解算法和实现。希望本文对您有所帮助。

C++实现:矩阵与向量相乘

原文地址: https://www.cveoy.top/t/topic/jpb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录