📅  最后修改于: 2023-12-03 14:55:52.002000             🧑  作者: Mango
本程序基于Java语言编写,用于检查两个矩阵是否能够相乘。
以下代码用于实现矩阵乘法,其中 a
和 b
分别表示两个待乘矩阵,c
表示结果矩阵,rowA
、colA
、rowB
和 colB
分别表示矩阵 a
和 b
的行数和列数。
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.