С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.11.2020
Сообщений: 10

Найти произведение матриц

26.05.2022, 19:40. Показов 2063. Ответов 5

Студворк — интернет-сервис помощи студентам
Даны 2 матрицы действительных чисел: A, размером n×m, и B, размером m×k. Найдите произведение матриц.
Входные данные
В первой строке даны числа n и m (целые, положительные) – количество строк и столбцов матрицы A. Далее во входном потоке идет n строк по m чисел, являющихся элементами матрицы A. В следующих строках даны числа m, k и m строк по k чисел, являющихся элементами матрицы B.
Выходные данные
Выведите матрицу, являющуюся результатом умножения матрицы A на B.
Примеры
входные данные
3 4
1 3 2 4
4 6 5 1
2 -1 3 0
4 2
1 2
3 5
0 1
1 0
выходные данные
11 15
23 43
-1 2
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.05.2022, 19:40
Ответы с готовыми решениями:

Найти произведение матриц
Даны две матрицы 4*4, состоящие из целых чисел от 1 до 10. Найти произведение этих матриц

Найти произведение двух матриц
Даны матрицы А и В размера k×m и m×l соответственно. Найти произведение АВ.

Найти произведение двух матриц (из файлов) и в новый файл вывести произведение
нужно две исходные матрицы скопировать в тот же файл, где и произведение матриц, подскажите, как это сделать? #include...

5
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
27.05.2022, 01:19
В ответе примера ошибка.
Правильный результат имеет вид:
14 19
23 43
-1 2

Решение:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def dot_prod( L, R ):
    res = 0
    for i in range( len(L) ):
        res += L[i]*R[i]
    return res
#==============================================================================
n_A, m_A = list( map( int, input('n_A, m_A = ').split() )  )
A = []
for i in range(n_A):
    A.append( list( map( int, input('-> ').split() ) ) )
print()
m_B, k_B = list( map( int, input('m_B, k_B = ').split() ) )
B = []
for i in range(m_B):
    B.append( list( map( int, input('-> ').split() ) ) )
B_tr = []
for col in zip(*B):
    B_tr.append(col)
C = [[dot_prod( A[i], B_tr[k] ) for k in range(k_B)] for i in range(n_A) ]
print()
for e in C:
    print(*e)
0
0 / 0 / 0
Регистрация: 15.11.2020
Сообщений: 10
27.05.2022, 13:38  [ТС]
А можно без использования функции? А то нам запрещено ею пользоваться в этом задании
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
27.05.2022, 13:59
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def mult_matr(a,b):
    ca=len(a[0])
    rb=len(b)
    if ca != rb:
        return None
    res=[]
    for r in range(len(a)):
        rr=[]
        for c in range(len(b[0])):
             s=0
             for k in range(ca):
                 s=s+a[r][k]*b[k][c]
             rr.append(s)
        res.append(rr)
    return res
   
   
(r,c)=map(int,input().split())
aa=[]
for _ in range(r):
    row=list(map(int,input().split()))
    aa.append(row)
    
(r,c)=map(int,input().split())
bb=[]
for _ in range(r):
    row=list(map(int,input().split()))
    bb.append(row)    
    
print(mult_matr(aa,bb))
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
27.05.2022, 14:15
Лучший ответ Сообщение было отмечено Данил222345 как решение

Решение

Цитата Сообщение от Данил222345 Посмотреть сообщение
А можно без использования функции?
Ну тогда так:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n_A, m_A = list( map( int, input('n_A, m_A = ').split() )  )
A = []
for i in range(n_A):
    A.append( list( map( int, input('-> ').split() ) ) )
print()
m_B, k_B = list( map( int, input('m_B, k_B = ').split() ) )
B = []
for i in range(m_B):
    B.append( list( map( int, input('-> ').split() ) ) )
B_tr = []
for col in zip(*B):
    B_tr.append(col)
C = [ [sum( [ A[i][j] * B_tr[k][j] for j in range( len(A[i] ) ) ] ) for k in range(k_B) ] for i in range(n_A) ]
print()
for e in C:
    print(*e)
1
0 / 0 / 0
Регистрация: 15.11.2020
Сообщений: 10
27.05.2022, 14:52  [ТС]
Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.05.2022, 14:52
Помогаю со студенческими работами здесь

Найти произведение матриц.
Даны две матрицы А(nxn) и B(nxn). Написать программу нахождения произведения этих матриц D = A*B.

Найти произведение матриц
горю с задачкой...помогите пожалуйста:( Даны матрицы A и B размером k на m и m на l соответсвенно.Найти произведение AB.

Найти произведение матриц
Имеем матрицы А и B размером K x N и N x M. Надо найти произведение матриц С = AB.

Найти произведение матриц
1. Даны матрицы А и В размера k×m и m×l соответственно. Найти произведение АВ.

Найти произведение матриц A и B
Найти C- произведение матриц A и B. Матрицы описать как одномерные массивы


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru