Я затрудняюсь с тем, что именно ищет в этой программе доктрина в следующем коде.
Может ли кто-нибудь сделать это более понятным для меня, пожалуйста?
- Напишите функции row_times_column и matrix_mult:
def row_times_column(m1, row, m2, column):
"""
>>> row_times_column([[1, 2], [3, 4]], 0, [[5, 6], [7, 8]], 0)
19
>>> row_times_column([[1, 2], [3, 4]], 0, [[5, 6], [7, 8]], 1)
22
>>> row_times_column([[1, 2], [3, 4]], 1, [[5, 6], [7, 8]], 0)
43
>>> row_times_column([[1, 2], [3, 4]], 1, [[5, 6], [7, 8]], 1)
50
"""
def matrix_mult(m1, m2):
"""
>>> matrix_mult([[1, 2], [3, 4]], [[5, 6], [7, 8]])
[[19, 22], [43, 50]]
>>> matrix_mult([[1, 2, 3], [4, 5, 6]], [[7, 8], [9, 1], [2, 3]])
[[31, 19], [85, 55]]
>>> matrix_mult([[7, 8], [9, 1], [2, 3]], [[1, 2, 3], [4, 5, 6]])
[[39, 54, 69], [13, 23, 33], [14, 19, 24]]
"""
Добавьте свои новые функции в matrices.py и убедитесь, что они передают вышеприведенные доктрины.
Он просит вас реализовать некоторые методы умножения матрицы.
В первом случае, учитывая матрицу, умножьте строку m1 x на столбец m2. Первый из них:
1 2 times 5 6
3 4 7 8
но нам нужна только строка 0 раз col 0, так что это будет
[1 2] x 5
7
= 5 + 14 = 19. И так далее для других...
Вторая функция требует полного матричного умножения. См. Http://en.wikipedia.org/wiki/Matrix_multiplication
Первая функция, первый пример в docstring: возьмем нулевую строку из первой матрицы ([1, 2]
) и умножим ее на нулевой столбец второй матрицы ([5, 7]
)
1 x 5 + 2 x 7 = 19
Вторая функция - это просто стандартное умножение матрицы. Вы можете использовать первую функцию для ответа на эту проблему.
Первая функция row_times_column
умножает n-ю строку первой матрицы на m-й столбец второй матрицы. В первом доктрине, например, n = 0
и m = 0
, поэтому мы умножаем матрицу строк [1, 2]
на матрицу столбцов [5, 7]
чтобы получить 1 * 5 + 2 * 7
что равно 19
как указано.
Вторая функция - обобщение, и вам нужно умножить первую матрицу на вторую. Вероятно, вы должны использовать первую функцию. Связанная статья показывает, как получить матричное умножение от комбинации умножения по столбцам.