АВТ
Язык:

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

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

2195. Умножение

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

Внесите следующие изменение в программу из предыдущей задачи:

  • Измените метод __mul__ таким образом, чтобы матрицы можно было умножать как на скаляры, так и на другие матрицы. В случае, если две матрицы перемножить невозможно, то тогда выбросьте ошибку MatrixError. Первая матрице в ошибке – это self, вторая – это второй операнд умножения.

Примеры

Входные данные
# Task 4 check 1
mid = Matrix([[1, 0, 0],[0, 1, 0],[0, 0, 1]])
m1 = Matrix([[3, 2], [-10, 0], [14, 5]])
m2 = Matrix([[5, 2, 10], [-0.5, -0.25, 18], [-22, -2.5, -0.125]])
print(mid * m1)
print(mid * m2)
print(m2 * m1)
try:
    m = m1 * m2
    print("WA It should be error")
except MatrixError as e:
    print(e.matrix1)
    print(e.matrix2)
Выходные данные
3  2
-10  0
14  5
5.0  2.0  10.0
-0.5  -0.25  18.0
-22.0  -2.5  -0.125
135  60
253.0  89.0
-42.75  -44.625
3  2
-10  0
14  5
5  2  10
-0.5  -0.25  18
-22  -2.5  -0.125
Входные данные
# Task 4 check 2
mid = Matrix([[1, 0, 0],[0, 1, 0],[0, 0, 1]])
m1 = Matrix([[3, 2], [-10, 0], [14, 5]])
m2 = Matrix([[5, 2, 10], [-0.5, -0.25, 18], [-22, -2.5, -0.125]])
print(0.5 * m2)
print(m2 * (0.5 * mid * m1))
Выходные данные
2.5  1.0  5.0
-0.25  -0.125  9.0
-11.0  -1.25  -0.0625
67.5  30.0
126.5  44.5
-21.375  -22.3125
Входные данные
# Task 4 check 3
mid = Matrix([[1, 0, 0],[0, 1, 0],[0, 0, 1]])
m1 = Matrix([[3, 2], [-10, 0], [14, 5]])
m2 = Matrix([[5, 2, 10], [-0.5, -0.25, 18], [-22, -2.5, -0.125]])
print(5 * m2)
print(m2 * (120 * mid * m1))
Выходные данные
25  10  50
-2.5  -1.25  90
-110  -12.5  -0.625
16200  7200
30360.0  10680.0
-5130.0  -5355.0

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