Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /******************************************************************************
- Compilation: javac MatrixMult.java
- Execution: java MatrixMult az as a_11 .. a_1as a_21 .. a2as .. a_az1 .. a_azas
- bz bs b_11 .. b_1bs b_21 .. b2bs .. b_bz1 .. b_bzbs
- Eingabe: Zwei (potentiell nicht quadratische) Matrizen aus Integer Werten.
- Die Matrizen werden hintereinander uebergeben und sind jeweils
- folgendermassen codiert:
- 1. Wert: Anzahl der Zeilen der Matrix (z)
- 2. Wert: Anzahl der Spalten der Matrix (s)
- Es folgen dann insgesamt (z*s) Werte der Matrix. Die Werte sind
- zeilenweise einzugeben, d.h. die ersten s Werte gehoeren zur ersten
- Zeile der Matrix, die naechsten s Werte zur zweiten Zeile, usw.
- Die Anzahl der Spalten der ersten und der Zeilen der zweiten Matrix
- muessen identisch sein. Wenn das nicht der Fall ist, soll das Programm
- nur ERROR ausgeben.
- Ausgabe: Das Produkt der beiden Matrizen. Die Produktmatrix soll zeilenweise
- erfolgen.
- Hinweise: Der Wert der Produktmatrix in der i-ten Zeile und j-ten Spalte ist
- die Summe des Produktes der Werte der i-ten Zeile der ersten Matrix
- und der j-ten Spalte der zweiten Matrix.
- Angenommen die erste Matrix ist
- 1 2 3
- 4 5 6
- und die zweite Matrix ist
- 7 10
- 8 11
- 9 12
- dann ist der Wert an der Stelle 1,1 des Produktes
- 1*7 + 2*8 + 3*9
- der Wert an der Stelle 2,1 ist entsprechend
- 4*7 + 5*8 + 6*9
- Referenzen: https://de.wikipedia.org/wiki/Matrizenmultiplikation#Beispiel
- *
- ******************************************************************************/
- public class MatrixMult {
- public static void main(String[]args){
- int[] zahlen = new int[args.length];
- for (int counter = 0; counter<args.length; counter++){
- zahlen[counter] = Integer.parseInt(args[counter]);
- } // Undendliche viele Angaben
- int Matrix1 = zahlen[0]*zahlen[1];
- System.out.println(Matrix1);
- int Matrix2 = zahlen[Matrix1+2]*zahlen[Matrix1+3];
- System.out.println(Matrix2);
- int Check = Matrix1+Matrix2+4;
- System.out.println(Check);
- int Zeile1 = zahlen [0];
- System.out.println(Zeile1);
- int Spalte1 = zahlen [1];
- System.out.println(Spalte1);
- int Zeile2 = zahlen [Matrix1+2 ];
- System.out.println(Zeile2);
- int Spalte2 = zahlen [Matrix1+3];
- System.out.println(Spalte2);
- int Rechnung = Matrix1*zahlen[Matrix1+1];
- System.out.println(Rechnung);
- int Stelle = 0;
- int[] Ergebnis = new int[1000];
- int[] Spalte = new int[1000];
- for (int p = 0; p<Spalte1; p++){
- int Jump = Spalte1*p;
- for (int k = 0; k<Spalte1; k++){
- for (int i = 0; i<Spalte1; i++){
- for (int a = 0; a<Spalte1; a++){
- int Sprung = Spalte2*a+k;
- Spalte[a] = zahlen[Matrix1+4+Sprung];
- }
- Ergebnis[i] = zahlen[2+i+Jump]*Spalte[i];
- }
- int Ende = 0;
- for ( int l = 0; l< Ergebnis.length; l++){
- Ende = Ende + Ergebnis[l];
- }
- System.out.print(Ende);
- System.out.print(" ");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement