Вложенные структуры · 14 из 26
Умножение матриц
«Строку на столбец» — повторяет Борис Аркадьевич и рисует на доске две матрицы. Перемножить можно не любые: столбцов у первой должно быть столько же, сколько строк у второй. Поэтому первое, что проверяет хорошая программа, — размеры.
Что сделать
Перемножьте две матрицы по правилу «строка на столбец»; если размеры не подходят — верните None.
Что приходит
a— первая матрица, m × k: список строкb— вторая матрица, k × n
Что вернуть
Новую матрицу m × n списком списков, или None, если столбцов у a не столько, сколько строк у b.
Допишите функцию umnozhit в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
umnozhit([[1, 2], [3, 4]], [[5, 6], [7, 8]])
[[19, 22], [43, 50]]
Элемент в строке i и столбце j произведения — сумма произведений i-й строки первой матрицы на j-й столбец второй: a[i][0] · b[0][j] + a[i][1] · b[1][j] + … + a[i][k−1] · b[k−1][j].
Перемножать можно, только если число столбцов первой матрицы (len(a[0])) равно числу строк второй (len(b)). Иначе ответ — None.
Матрицы не пустые; строки внутри одной матрицы одной длины.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.