Как думать, как ученый (глава 9): я не понимаю следующее

1

Я затрудняюсь с тем, что именно ищет в этой программе доктрина в следующем коде.

Может ли кто-нибудь сделать это более понятным для меня, пожалуйста?

Вопрос 14:

  1. Напишите функции 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 и убедитесь, что они передают вышеприведенные доктрины.

Теги:

3 ответа

3
Лучший ответ

Он просит вас реализовать некоторые методы умножения матрицы.

В первом случае, учитывая матрицу, умножьте строку 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

3

Первая функция, первый пример в docstring: возьмем нулевую строку из первой матрицы ([1, 2]) и умножим ее на нулевой столбец второй матрицы ([5, 7])

1 x 5 + 2 x 7 = 19

Вторая функция - это просто стандартное умножение матрицы. Вы можете использовать первую функцию для ответа на эту проблему.

1

Первая функция row_times_column умножает n-ю строку первой матрицы на m-й столбец второй матрицы. В первом доктрине, например, n = 0 и m = 0, поэтому мы умножаем матрицу строк [1, 2] на матрицу столбцов [5, 7] чтобы получить 1 * 5 + 2 * 7 что равно 19 как указано.

Вторая функция - обобщение, и вам нужно умножить первую матрицу на вторую. Вероятно, вы должны использовать первую функцию. Связанная статья показывает, как получить матричное умножение от комбинации умножения по столбцам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню