二次元二重配列メソッドを使用しているときに、mainメソッドで何を書き込むのかをまだ完全に理解していません。 A = {{4.00,3.00}, {2.00,1.00}}
とB = {{-0.500, 1.500}, {1.000, -2.0000}}
の場合、コードの出力が何であるかを知りたいと思います。もし例外がスローされていると仮定すると、複雑な定数O(1)
ですが、Big-Oの次のメソッドの複雑さは次のようになります:O(1 + aRows * bColumns + aRows * bColumns * aColumns + 1)
?それとも、ただO(aRows * bColumns * aColumns)
ですか?Java:2次元配列メソッド - メインメソッドとその複雑さで呼び出す
public class Exercise {
public static void main(String[] args){
}
public static double[][] m (double[][] A, double [][] B){
int aRows = A.length;
int aColumns = A[0].length;
int bRows = B.length;
int bColumns = B[0].length;
if (aColumns != bRows){
throw new IllegalArgumentException("A: Rows: " + aColumns + " did not match B: Columns " + bRows + ".");
}
double[][] C = new double[aRows][bColumns];
for (int i = 0; i < 2; i++){
for (int j = 0; j < 2; j++){
C[i][j] = 0.00000;
}
}
for (int i = 0; i < aRows; i++){
for (int j = 0; j < bColumns; j++){
for (int k = 0; k < aColumns; k++){
C[i][j] += A[i][k] * B[k][j];
}
}
}
return C;
}
}
ありがとうございました。私はdouble [] [] a = new double [] {] {new double [] {4.00,3.00}、new double [] { - 0.500,1.500}}と書いています。 double [] [] b =新しいdouble [] {] {新しいdouble [] { - 0.500,1.500}、新しいdouble [] {1.000、-2.00000}}; m(a、b);m(a、b);私の主な方法では、それはoutptutを印刷しません。何故ですか? – TeachMeJava2017
@ TeachMeJava2017変数に変数を代入し、配列の内容を出力するコードを記述する必要があります。 'System.out.print()'を使って同じ行に何回も印刷することができます(もし冒険しているなら 'System.out.printf()')、 'System.out.println () '配列の行の間に。 – Haem
だから私はdouble [] [] x = m(a、b)と書いた。 System.out.println(x);それは実際の値ではなく、参照を出力するだけです。[[D @ 7852e922 – TeachMeJava2017