В математике умножение матриц или произведение матриц - это двоичная операция, которая производит матрицу из двух матриц. Определение мотивировано линейными уравнениями и линейными преобразованиями на векторах, которые имеют многочисленные приложения в прикладной математике, физике и технике. Более подробно, если A является матрицей n × m, а B является матрицей m × p, их матричное произведение AB является матрицей n × p, в которой m записей в строке A умножаются на m записей на a столбцы B и суммировать, чтобы произвести запись AB. Когда два линейных преобразования представлены матрицами, тогда произведение матрицы представляет собой композицию двух преобразований.
Источник: Википедия
Другими словами, умножить две матрицы, например:
1 2 3 1 4
2 3 4 × 3 1 =
3 4 5 4 6
Сначала возьмем строку 1 в первой матрице, столбец 1 во второй матрице и умножим 1
на 1
, 2
на 3
и 3
на 4
.
1 × 1 = 1
2 × 3 = 6
3 × 4 = 12
Теперь сложите их вместе, чтобы получить первый элемент:
1 2 3 1 4 19
2 3 4 × 3 1 =
3 4 5 4 6
Для второго числа в первом столбце результата вам нужно взять строку № 2 вместо строки № 1 и сделать то же самое.
1 × 2 = 2
3 × 3 = 9
4 × 4 = 16
= 27
После того, как вы выполните весь первый столбец, результат будет выглядеть так:
1 2 3 1 4 19
2 3 4 × 3 1 = 27
3 4 5 4 6 35
Теперь сделайте то же самое снова, но возьмите второй столбец вместо первого столбца, в результате чего:
1 2 3 1 4 19 24
2 3 4 × 3 1 = 27 35
3 4 5 4 6 35 46
Твое задание
Учитывая две матрицы (максимальные размеры 200x200), содержащие числа в диапазоне от -10000 до 10000, где число столбцов в первом равно количеству строк во втором, умножьте первый на второй. (Умножение матриц некоммутативно.)
Вы можете принимать и выводить данные в виде массива массивов (или эквивалентных), матрицы (если ваш язык имеет этот формат) или многострочной строки.
Вы не можете использовать любые встроенные модули для умножения матриц.
Контрольные примеры
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
Помните, это код-гольф , поэтому выигрывает код с наименьшим количеством байтов.