检查矩阵相乘结果的方法? 我有一个简单的C++程序,它的乘法是:矩阵*矩阵: #include <iostream> using namespace std; int main() { int n, m, r, i, j, k, si; cout << "Dimension 1: "; cin >> n; cout << "Dimension 2: "; cin >> m; cout << "Dimension 3: "; cin >> r; int * A = new int[n * m]; int * B = new int[m * r]; int * C = new int[n * r]; for (i = 0; i < n; i++) for (j = 0; j < m; j++) cin >> A[i * m + j]; for (i = 0; i < m; i++) for (j = 0; j < r; j++) cin >> B[i * r + j]; for (i = 0; i < n; i++) for (j = 0; j < r; j++) { si = 0; for (k = 0; k < m; k++) si += A[i * m + k] * B[k * r + j]; C[i * r + j] = si; } cout << endl; for (i = 0; i < n; i++) { for (j = 0; j < r; j++) cout << C[i * r + j] << " "; cout << endl; } getchar(); getchar(); }

检查矩阵相乘结果的方法? 我有一个简单的C++程序,它的乘法是:矩阵*矩阵: #include <iostream> using namespace std; int main() { int n, m, r, i, j, k, si; cout << "Dimension 1: "; cin >> n; cout << "Dimension 2: "; cin >> m; cout << "Dimension 3: "; cin >> r; int * A = new int[n * m]; int * B = new int[m * r]; int * C = new int[n * r]; for (i = 0; i < n; i++) for (j = 0; j < m; j++) cin >> A[i * m + j]; for (i = 0; i < m; i++) for (j = 0; j < r; j++) cin >> B[i * r + j]; for (i = 0; i < n; i++) for (j = 0; j < r; j++) { si = 0; for (k = 0; k < m; k++) si += A[i * m + k] * B[k * r + j]; C[i * r + j] = si; } cout << endl; for (i = 0; i < n; i++) { for (j = 0; j < r; j++) cout << C[i * r + j] << " "; cout << endl; } getchar(); getchar(); },c++,math,matrix,matrix-multiplication,C++,Math,Matrix,Matrix Multiplication,如果矩阵真的很大,比如1000x1000,检查结果的方法是什么?我的意思是使用编程语言,而不是数学上的我想你的意思是检查正确的实现 有几种方法可以做到这一点: 一,。通过归纳推理证明正确性如果适用于n=1和n=2等,也适用于n=1000 二,。实现不同的alogrithm,以获得相同的结果,并针对不同的输入大小比较这两个结果 如果你真的想确保你的算法适用于一组定义好的输入变量,你也可以在那一点上写一个测试,你可以非常确定它是正确的。你可以使用另一个成熟的软件生成测试数据。试试MATLAB。为什么

如果矩阵真的很大,比如1000x1000,检查结果的方法是什么?我的意思是使用编程语言,而不是数学上的

我想你的意思是检查正确的实现

有几种方法可以做到这一点:

一,。通过归纳推理证明正确性如果适用于n=1和n=2等,也适用于n=1000

二,。实现不同的alogrithm,以获得相同的结果,并针对不同的输入大小比较这两个结果


如果你真的想确保你的算法适用于一组定义好的输入变量,你也可以在那一点上写一个测试,你可以非常确定它是正确的。

你可以使用另一个成熟的软件生成测试数据。试试MATLAB。

为什么不在小矩阵上检查代码的正确性,比如3x3或4x4?如果小矩阵可以正常工作并覆盖所有边缘情况,您只需检查大情况下的溢出和性能。大量谷歌矩阵测试数据的结果您如何知道您的检查程序是正确的?@alexeykuzmin0我的主要目标不是找出我的结果是否正确,而是找到一种算法/方法以另一种方式计算结果,换句话说:实现一个检查第一种方法的解决方案。好的观点。实际上,我正在尝试实现一个检查第一种方法的解决方案。你能提出你在第2点中提到的任何算法吗?你可以尝试实现这个算法:。它也比您的方法(标准方法)快得多。