Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. /******************************************************************************
  2. Compilation: javac MatrixMult.java
  3. Execution: java MatrixMult az as a_11 .. a_1as a_21 .. a2as .. a_az1 .. a_azas
  4. bz bs b_11 .. b_1bs b_21 .. b2bs .. b_bz1 .. b_bzbs
  5.  
  6. Eingabe: Zwei (potentiell nicht quadratische) Matrizen aus Integer Werten.
  7. Die Matrizen werden hintereinander uebergeben und sind jeweils
  8. folgendermassen codiert:
  9. 1. Wert: Anzahl der Zeilen der Matrix (z)
  10. 2. Wert: Anzahl der Spalten der Matrix (s)
  11. Es folgen dann insgesamt (z*s) Werte der Matrix. Die Werte sind
  12. zeilenweise einzugeben, d.h. die ersten s Werte gehoeren zur ersten
  13. Zeile der Matrix, die naechsten s Werte zur zweiten Zeile, usw.
  14.  
  15. Die Anzahl der Spalten der ersten und der Zeilen der zweiten Matrix
  16. muessen identisch sein. Wenn das nicht der Fall ist, soll das Programm
  17. nur ERROR ausgeben.
  18.  
  19. Ausgabe: Das Produkt der beiden Matrizen. Die Produktmatrix soll zeilenweise
  20. erfolgen.
  21.  
  22.  
  23. Hinweise: Der Wert der Produktmatrix in der i-ten Zeile und j-ten Spalte ist
  24. die Summe des Produktes der Werte der i-ten Zeile der ersten Matrix
  25. und der j-ten Spalte der zweiten Matrix.
  26.  
  27. Angenommen die erste Matrix ist
  28. 1 2 3
  29. 4 5 6
  30.  
  31. und die zweite Matrix ist
  32. 7 10
  33. 8 11
  34. 9 12
  35.  
  36. dann ist der Wert an der Stelle 1,1 des Produktes
  37. 1*7 + 2*8 + 3*9
  38.  
  39. der Wert an der Stelle 2,1 ist entsprechend
  40. 4*7 + 5*8 + 6*9
  41.  
  42. Referenzen: https://de.wikipedia.org/wiki/Matrizenmultiplikation#Beispiel
  43.  
  44. *
  45. ******************************************************************************/
  46.  
  47. public class MatrixMult {
  48. public static void main(String[]args){
  49. int[] zahlen = new int[args.length];
  50. for (int counter = 0; counter<args.length; counter++){
  51. zahlen[counter] = Integer.parseInt(args[counter]);
  52. } // Undendliche viele Angaben
  53.  
  54. int Matrix1 = zahlen[0]*zahlen[1];
  55. System.out.println(Matrix1);
  56. int Matrix2 = zahlen[Matrix1+2]*zahlen[Matrix1+3];
  57. System.out.println(Matrix2);
  58. int Check = Matrix1+Matrix2+4;
  59. System.out.println(Check);
  60. int Zeile1 = zahlen [0];
  61. System.out.println(Zeile1);
  62. int Spalte1 = zahlen [1];
  63. System.out.println(Spalte1);
  64. int Zeile2 = zahlen [Matrix1+2 ];
  65. System.out.println(Zeile2);
  66. int Spalte2 = zahlen [Matrix1+3];
  67. System.out.println(Spalte2);
  68. int Rechnung = Matrix1*zahlen[Matrix1+1];
  69. System.out.println(Rechnung);
  70.  
  71.  
  72.  
  73. int Stelle = 0;
  74. int[] Ergebnis = new int[1000];
  75. int[] Spalte = new int[1000];
  76. for (int p = 0; p<Spalte1; p++){
  77. int Jump = Spalte1*p;
  78. for (int k = 0; k<Spalte1; k++){
  79. for (int i = 0; i<Spalte1; i++){
  80. for (int a = 0; a<Spalte1; a++){
  81.  
  82. int Sprung = Spalte2*a+k;
  83. Spalte[a] = zahlen[Matrix1+4+Sprung];
  84.  
  85. }
  86. Ergebnis[i] = zahlen[2+i+Jump]*Spalte[i];
  87. }
  88. int Ende = 0;
  89. for ( int l = 0; l< Ergebnis.length; l++){
  90. Ende = Ende + Ergebnis[l];
  91. }
  92. System.out.print(Ende);
  93. System.out.print(" ");
  94. }
  95. }
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement