在 Java 中乘以二维数组
Multiplying 2D arrays in Java
我在回答下面的问题时遇到了一些问题,不确定它是否写成,因为我不知道如何调用 driver 方法中的方法来打印结果。
(问题)用 header 创建一个方法:
public static int[][] multiplyArrays(int[][] a, int[][] b)
上述方法将乘以a和b所指的两个二维数组,return一个二维数组
a × b
的引用。将两个二维数组相乘可得到以下代数表达式
找出结果数组:result[i][j]= a[i][k] * b[k][j]
提示:在这种情况下,在方法内部,声明一个 2D int[][]
数组引用变量和
用 a.length x b[0].length
的大小实例化它。他们使用
级数乘法。这是嵌套循环的一个应用。最外层的循环将从 运行
0
到 N
。中间循环将为索引 i
运行,最里面的循环将为索引 j
.
运行
到目前为止我的代码:
public static int[][] multiplyArrays(int[][] a, int[][] b) {
var aNumRows = a.length;
var aNumCols = a[0].length;
var bNumCols = b[0].length;
int[][] m = new int[aNumRows][bNumCols];
for (var r = 0; r < aNumRows; ++r) {
for (var c = 0; c < bNumCols; ++c) {
m[r][c] = 0;
for (var i = 0; i < aNumCols; ++i) {
m[r][c] += a[r][i] * b[i][c];
System.out.printf("%3d",r, c);
}
}
}
return m;
}
由于您定义的方法是静态的,您可以简单地使用 classname.multiplyArrays(a, b)
;其中 a 和 b 是驱动程序方法中变量的名称。
我在回答下面的问题时遇到了一些问题,不确定它是否写成,因为我不知道如何调用 driver 方法中的方法来打印结果。
(问题)用 header 创建一个方法:
public static int[][] multiplyArrays(int[][] a, int[][] b)
上述方法将乘以a和b所指的两个二维数组,return一个二维数组
a × b
的引用。将两个二维数组相乘可得到以下代数表达式
找出结果数组:result[i][j]= a[i][k] * b[k][j]
提示:在这种情况下,在方法内部,声明一个 2D int[][]
数组引用变量和
用 a.length x b[0].length
的大小实例化它。他们使用
级数乘法。这是嵌套循环的一个应用。最外层的循环将从 运行
0
到 N
。中间循环将为索引 i
运行,最里面的循环将为索引 j
.
到目前为止我的代码:
public static int[][] multiplyArrays(int[][] a, int[][] b) {
var aNumRows = a.length;
var aNumCols = a[0].length;
var bNumCols = b[0].length;
int[][] m = new int[aNumRows][bNumCols];
for (var r = 0; r < aNumRows; ++r) {
for (var c = 0; c < bNumCols; ++c) {
m[r][c] = 0;
for (var i = 0; i < aNumCols; ++i) {
m[r][c] += a[r][i] * b[i][c];
System.out.printf("%3d",r, c);
}
}
}
return m;
}
由于您定义的方法是静态的,您可以简单地使用 classname.multiplyArrays(a, b)
;其中 a 和 b 是驱动程序方法中变量的名称。