Матрично-векторные произведения через оператор @
Содержание курса
Найди и исправь: три неверных выражения матричного умножения
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет.
В редакторе есть сломанный код. Он пытается выполнить три операции с оператором @, но в каждой из трёх строк допущена ошибка: неверный операнд или порядок операндов приводит к тому, что shape результата не тот, что требует задача (а в некоторых случаях — к ValueError из-за несовпадения внутренних размеров).
Читаются три целых числа M, N, K (все не менее 2). Затем создаются три массива:
A— shape(M, K), заполненная единицами;b— shape(K,), заполненный единицами;B— shape(K, N), заполненная единицами.
Что нужно сделать
Найдите и исправьте ровно три ошибки в строках, помеченных # ОШИБКА, так чтобы:
r1 = A @ b— shape(M,): матрица(M, K)умножается на вектор(K,);r2 = b @ B— shape(N,): вектор(K,)умножается на матрицу(K, N);r3 = A @ B— shape(M, N): матрица(M, K)умножается на матрицу(K, N).
Программа выводит shape каждого результата в три строки в формате r1: <shape>, r2: <shape>, r3: <shape>.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
M N K
Гарантируется M >= 2, N >= 2, K >= 2, а также M, N, K могут быть различными.
Формат вывода
r1: (M,)
r2: (N,)
r3: (M, N)
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
- Тест 1Ввод
3 5 4
Ожидаемый выводr1: (3,) r2: (5,) r3: (3, 5)
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
