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

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

26.05.2022, 19:40. Показов 2110. Ответов 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,706
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
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 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,706
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
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru