АВТ
Язык:

Дистанционный практикум по программированию

Задачи Online статус Соревнования
Новости Справка СДО
 
Здравствуйте, Гость! Войдите с паролем или зарегистрируйтесь.

2193. Добавить и умножить

Ограничение времени: 1 сек.
Ограничение памяти:262144 КБайт
Баллы:100
Статистика Послать на проверку Задачу добавил debug

Добавьте в класс Matrix из предыдущей задачи следующие методы:

  • __add__, принимающий вторую матрицу того же размера и возвращающий сумму матриц.
  • __mul__, принимающий число типа int или float и возвращающий матрицу, умноженную на скаляр.
  • __rmul__, делающий то же самое, что и __mul__. Этот метод будет вызван в том случае, аргумент находится справа. Для реализации этого метода в коде класса достаточно написать __rmul__ = __mul__.

Иллюстрация:

  • В следующем случае вызовется __mul__: Matrix([[0, 1], [1, 0]) * 10.
  • В следующем случае вызовется __rmul__ (так как у int не определен __mul__ для матрицы справа): 10 * Matrix([[0, 1], [1, 0]).
Разумеется, данные методы не должны менять содержимое матрицы.

Примеры

Входные данные
# Task 2 check 1
m = Matrix([[10, 10], [0, 0], [1, 1]])
print(m.size())
Выходные данные
(3, 2)
Входные данные
# Task 2 check 2
m1 = Matrix([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
m2 = Matrix([[0, 1, 0], [20, 0, -1], [-1, -2, 0]])
print(m1 + m2)
Выходные данные
1  1  0
20  1  -1
-1  -2  1
Входные данные
# Task 2 check 3
m = Matrix([[1, 1, 0], [0, 2, 10], [10, 15, 30]])
alpha = 15
print(m * alpha)
print(alpha * m)
Выходные данные
15  15  0
0  30  150
150  225  450
15  15  0
0  30  150
150  225  450

Статистика Послать на проверку Обсуждение задачи Автор/источник:
Задачи по темам / Python / ООП в Python /
2192. A - Матрица 2193. 2194. C - Ошибки и транспонирование 2195. D - Умножение 2196. E - Наследование
 
время генерации 0.094 сек.
© Copyright ВоГУ, АВТ, Носов Д.А., Андрианов И.А.