/
Ananev
/
python_gen_advenced
Обзор
Документация
Войти
/
Ananev
/
python_gen_advenced
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
4.7.2.py
48 строк
3 KB
GolosCD
Умножение матриц 🌶️
09 май 2023, 11:41
09 май 2023, 11:41
4087335
Код
Авторство
О чём код?
""" Напишите программу, которая перемножает две матрицы. Формат входных данных На вход программе подаются два натуральных числа nn и mm — количество строк и столбцов в первой матрице, затем элементы первой матрицы, затем пустая строка. Далее следуют числа mm и kk — количество строк и столбцов второй матрицы затем элементы второй матрицы. Формат выходных данных Программа должна вывести результирующую матрицу, разделяя элементы символом пробела. """ """ 1) получаем n,m 2) аналогично *Примечание 3 из урока Матрицы ч.1 заполняем matrix1=[] 3)input() # пустая строка 4) получаем m, k 5) аналогично п.2 заполняем matrix2 6) создаем результирующую matrix3 размером n*k, которую пока заполним нулями 7) нам потребуется создать два вложенных цикла, чтобы пробежаться по индексам matrix3[0..n строк][0..k столбцов]. Так же потребуется третий вложенный цикл, так как нам чтобы обращаться к индексам первых двух матриц необходимо учитывать что первая матрица состоит из m-столбцов, а вторая матрица из m-строк. третий цикл будет от 0..m. 8) в третьем вложенном цикле формула matrix3[i][j]+=matrix1[i][c]*matrix2[c][j] # в данной формуле переменная "с" меняет значение от 0 до m. Следовательно [c]-должен быть индексом столбца в первой матрице и индексом строки во второй матрице.Формула matrix3[i][j]+= работает по аналогии (i=i+1) то есть после выполнения первой итерации, ее результат складывается с результатом второй итерации и т.д. Таким образом количество сложений(операций суммирования перемноженных элементов) зависит от числа m. 9) вывод результирующей матрицы """ # функция печати матриц с распаковкой строк def print_matrix(matrix_name,matrix_lenght): for i in range(matrix_lenght): print(*matrix_name[i]) if __name__=='__main__': # матрица А size = [int(i) for i in input().split()] n = size[0] m = size[1] A=list() A=[[int(i) for i in input().split()] for j in range(n)] input() # матрица В size = [int(i) for i in input().split()] m = size[0] k = size[1] B=[[int(i) for i in input().split()] for j in range(m)] # матрица С C=[[0 for i in range(n)] for j in range(k)] for i in range (n): for j in range(k): for g in range(m): C[i][j] += A[i][g]*B[g][j] print_matrix(C,len(C))