C++ 矩阵乘法可视化演示

交互式学习矩阵乘法算法及其C++实现

输入矩阵

矩阵 A

×

矩阵 B

×

控制面板

矩阵乘法过程可视化

1
2
3
4
5
6
A
×
7
8
9
10
11
12
B
=
C (结果)

当前计算

计算 C[0][0]:

C++ 实现代码

void matrixMultiply(const vector<vector<int>>& A, 
                const vector<vector<int>>& B,
                vector<vector<int>>& C) { ←
    int aRows = A.size();
    int aCols = A[0].size();
    int bCols = B[0].size();
    
    for (int i = 0; i < aRows; i++) {
        for (int j = 0; j < bCols; j++) {
            int sum = 0;  // 初始化累加值
            
            for (int k = 0; k < aCols; k++) {
                sum += A[i][k] * B[k][j];
            }
            
            C[i][j] = sum;  // 存储结果
        }
    }
}

调用堆栈

  • main()

变量状态

i = 0
j = 0
k = 0
sum = 0

矩阵乘法算法说明

矩阵乘法是线性代数中的基本运算。对于矩阵 A(m×n) 和矩阵 B(n×p),它们的乘积 C(m×p) 定义为:

C[i][j] = Σ(A[i][k] * B[k][j]), k从0到n-1

其中:

  • i 表示结果矩阵的行索引 (0 ≤ i < m)
  • j 表示结果矩阵的列索引 (0 ≤ j < p)
  • k 表示求和索引,遍历 A 的列和 B 的行 (0 ≤ k < n)

实现算法需要三重嵌套循环,时间复杂度为 O(m×n×p)。本演示通过可视化方式展示了这一过程。

© 2024 算法可视化教学工具