📜  检验两个矩阵可乘性的Java程序(1)

📅  最后修改于: 2023-12-03 14:55:52.002000             🧑  作者: Mango

检验两个矩阵可乘性的Java程序

本程序基于Java语言编写,用于检查两个矩阵是否能够相乘。

代码实现

以下代码用于实现矩阵乘法,其中 ab 分别表示两个待乘矩阵,c 表示结果矩阵,rowAcolArowBcolB 分别表示矩阵 ab 的行数和列数。

public static void multiply(int[][] a, int[][] b, int[][] c, int rowA, int colA, int rowB, int colB) {
    if (colA != rowB) {
        System.out.println("These matrices cannot be multiplied.");
        return;
    }
    for (int i = 0; i < rowA; i++) {
        for (int j = 0; j < colB; j++) {
            int sum = 0;
            for (int k = 0; k < colA; k++) {
                sum += a[i][k] * b[k][j];
            }
            c[i][j] = sum;
        }
    }
}
代码解释

本程序先判断输入的矩阵是否符合相乘规则,即矩阵 a 的列数是否等于矩阵 b 的行数。若符合相乘规则,则使用三重循环计算结果矩阵 c 的每个元素的值。

使用方法

以下代码展示了如何使用本程序进行矩阵乘法运算:

int[][] a = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int[][] b = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}};
int rowA = 3, colA = 3, rowB = 3, colB = 3;
int[][] c = new int[rowA][colB];
multiply(a, b, c, rowA, colA, rowB, colB);

以上代码展示了两个 $3 \times 3$ 的矩阵相乘的例子。程序将会输出如下结果:

[[30, 24, 18], [84, 69, 54], [138, 114, 90]]

若输入的矩阵不符合相乘规则,程序将输出如下结果:

These matrices cannot be multiplied.