In der Mathematik ist die Matrixmultiplikation oder das Matrixprodukt eine binäre Operation, die eine Matrix aus zwei Matrizen erzeugt. Die Definition wird durch lineare Gleichungen und lineare Transformationen auf Vektoren motiviert, die zahlreiche Anwendungen in der angewandten Mathematik, Physik und Technik haben. Genauer gesagt, wenn A eine n × m-Matrix und B eine m × p-Matrix ist, ist ihr Matrixprodukt AB eine n × p-Matrix, in der die m Einträge über eine Reihe von A mit den m Einträgen nach a multipliziert werden Spalten von B und summiert, um einen Eintrag von AB zu erzeugen. Wenn zwei lineare Transformationen durch Matrizen dargestellt werden, repräsentiert das Matrixprodukt die Zusammensetzung der beiden Transformationen.
Quelle: Wikipedia
Mit anderen Worten, um zwei Matrizen zu multiplizieren, zum Beispiel:
1 2 3 1 4
2 3 4 × 3 1 =
3 4 5 4 6
Nehmen Sie zuerst die Zeilennummer 1 in der ersten Matrix, die Spaltennummer 1 in der zweiten Matrix und multiplizieren Sie 1
mit 1
, 2
mit 3
und 3
mit 4
.
1 × 1 = 1
2 × 3 = 6
3 × 4 = 12
Addiere sie nun zu deinem ersten Gegenstand:
1 2 3 1 4 19
2 3 4 × 3 1 =
3 4 5 4 6
Für die zweite Zahl in der ersten Spalte des Ergebnisses müssen Sie anstelle der Zeilennummer 1 die Zeilennummer 2 verwenden und dasselbe tun.
1 × 2 = 2
3 × 3 = 9
4 × 4 = 16
= 27
Nachdem Sie die gesamte erste Spalte erstellt haben, sieht das Ergebnis folgendermaßen aus:
1 2 3 1 4 19
2 3 4 × 3 1 = 27
3 4 5 4 6 35
Machen Sie jetzt genau dasselbe noch einmal, aber nehmen Sie die zweite Spalte anstelle der ersten, was zur Folge hat:
1 2 3 1 4 19 24
2 3 4 × 3 1 = 27 35
3 4 5 4 6 35 46
Deine Aufgabe
Wenn zwei Matrizen (maximale Abmessungen 200 x 200) mit Zahlen im Bereich von -10000 bis 10000 gegeben sind, wobei die Anzahl der Spalten in der ersten der Anzahl der Zeilen in der zweiten entspricht, multiplizieren Sie die erste mit der zweiten. (Matrixmultiplikation ist nicht kommutativ.)
Sie können Eingaben und Ausgaben als Array von Arrays (oder Äquivalente), als Matrix (wenn Ihre Sprache dieses Format hat) oder als mehrzeilige Zeichenfolge angeben.
Sie dürfen keine eingebauten Funktionen für die Matrixmultiplikation verwenden.
Testfälle
1 2 1 2 3 4 5 13 16 19 22 25
3 4 × 6 7 8 9 10 = 27 34 41 48 55
5 6 41 52 63 74 85
2 3 3 5 15 13
3 4 × 3 1 = 21 19
5 3 11 27
1 3 1 3 7 15
9 3 × 2 4 = 15 39
1 -1000 -1999 -3997
Denken Sie daran, das ist Code-Golf , also gewinnt der Code mit den wenigsten Bytes.