Fehlenden Code finden in einer while-Schleife?

Say

Aktives Mitglied
Hallo zusammen,

wie finde ich die fehlende Code Stelle? Wie kommt man auf diese Lösung:
int[][] tab2= { {1,3,2} , {2,4,6} , {1,3,5} };

int[][] tab1= { {1,2,5} , {2,6,7} };
/* code fehlt */
int[][] tab = new int[tab1.length][tab2[0].length];
for (int i = 0 ; i < tab1.length; i++){
for (int j = 0 ; j < tab2[0].length; j++){
for (int k = 0; k < tab2.length; k++){
tab[j] += tab1[k] * tab2[k][j];
}
}
}

Gruss
Say
 
Dieser Code Teil passt: int[][] tab2= { {1,3,2} , {2,4,6} , {1,3,5} };
Leider verstehe ich die 2D nicht sowie bei der ersten for Schleife wäre die Länge von tab1 2 oder 6?
Bei der zweiten for Schleife ist die Länge 3?
Bei der dritten for Schleife ist die Länge 9?

Java:
int[][] tab1= { {1,2,5} , {2,6,7} };
/* code fehlt */
int[][] tab = new int[tab1.length][tab2[0].length];
for (int i = 0 ; i < tab1.length; i++){
for (int j = 0 ; j < tab2[0].length; j++){
for (int k = 0; k < tab2.length; k++){
tab[j] += tab1[k] * tab2[k][j];
}
}
}
 
Es geht um Matrizenmultiplikation?
Du arbeotest an einer Aufgabe, welche besagt, dass an dieser Stelle Code einzufügen ist, oder wie kommst Du darauf?
P. S. : Zeile 7 enthält zwei Fehler
 
Zweidimensionale Arrays sind als Arrays, welche wiederum Arrays enthalten, zuverstehen. Bei der i- und k-Schleife fagst du nach der Länge des äußeren Arrays, die j-Schleife durchläuft ein inneres Array.
 
Schau genau hin. Alle Arrays sind zweidimensional.
tab[j] += tab1[k] * tab2[k][j]; wenn du einzelne Elemente addieren/multiplizieren willst, musst du auch stets zeile und spalte angeben.
 
Aber was genau bedeutet tab2[0].length? auf was bezieht sich das?
tab1.length? die beiden geschleiften Klammern?
tab2[0].length gibt dir die Länge der ersten inneren Klammer an. Wenn die inneren Klammern jeweils als Zeilen der Matrix interpretiert werden, dann entspricht die Länge einer solchen Zeile eben der Anzahl der Spalten.
Wichtig für eine Matrix ist, dass sie rechteckig ist. Das bedeuted, dass alle Zeilen einer Matrix gleich viele Elemente enthalten muss. Das ist in JAVA aber nicht zwingend gegeben. Hier Darf jedes innere Array eine individuelle Länge haben. Eine Überprüfung auf Rechteckigkeit könnte evtl. in Zeile 2 gefordert sein, bin aber auch etwas ratlos.
 

Zurück
Oben