W matematyce mnożenie macierzy lub iloczyn macierzy jest operacją binarną, która wytwarza macierz z dwóch macierzy. Definicja jest motywowana równaniami liniowymi i transformacjami liniowymi wektorów, które mają wiele zastosowań w matematyce, fizyce i inżynierii. Bardziej szczegółowo, jeśli A jest macierzą n × m, a B jest macierzą m × p, to ich iloczyn macierzy AB jest macierzą n × p, w której m wpisów w rzędzie A jest pomnożonych przez m wpisów w dół a kolumny B i zsumowane, aby uzyskać wpis AB. Gdy dwie transformacje liniowe są reprezentowane przez macierze, to iloczyn macierzy reprezentuje skład tych dwóch transformacji.
Źródło: Wikipedia
Innymi słowy, aby pomnożyć dwie macierze, na przykład:
1 2 3 1 4
2 3 4 × 3 1 =
3 4 5 4 6
Najpierw weź wiersz 1 w pierwszej macierzy, kolumnę numer 1 w drugiej macierzy i pomnóż 1przez 1, 2przez 3i 3przez 4.
1 × 1 = 1
2 × 3 = 6
3 × 4 = 12
Teraz dodaj je razem, aby otrzymać swój pierwszy przedmiot:
1 2 3 1 4 19
2 3 4 × 3 1 =
3 4 5 4 6
W przypadku drugiej liczby w pierwszej kolumnie wyniku musisz wziąć wiersz 2 zamiast wiersza 1 i zrobić to samo.
1 × 2 = 2
3 × 3 = 9
4 × 4 = 16
= 27
Po wykonaniu całej pierwszej kolumny wynik wygląda następująco:
1 2 3 1 4 19
2 3 4 × 3 1 = 27
3 4 5 4 6 35
Teraz zrób dokładnie to samo, ale weź drugą kolumnę zamiast pierwszej kolumny, co spowoduje:
1 2 3 1 4 19 24
2 3 4 × 3 1 = 27 35
3 4 5 4 6 35 46
Twoje zadanie
Biorąc pod uwagę dwie macierze (maksymalne wymiary 200 x 200), zawierające liczby z zakresu od -10000 do 10000, gdzie liczba kolumn na pierwszej równa się liczbie wierszy na drugiej, pomnóż pierwszą przez drugą. (Mnożenie macierzy jest nieprzemienne.)
Możesz pobierać dane wejściowe i podawać dane wyjściowe jako tablicę tablic (lub odpowiednik), macierz (jeśli twój język ma ten format) lub łańcuch wielowierszowy.
Nie można używać żadnych wbudowanych funkcji do mnożenia macierzy.
Przypadki testowe
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
Pamiętaj, to jest kodowanie w golfa , więc wygrywa kod z najmniejszą liczbą bajtów.