矩阵相乘算法python,python中矩阵乘法的代码
形容
矩阵乘法的计算与矩阵乘法的阶数密切相关。
例如:
a是5010的矩阵,B是1020的矩阵,C是205的矩阵。
计算ABC有两种顺序:((AB)C)或(A(BC))。前者需要计算15000次乘法,后者只需要3500次。
写一个程序,计算不同计算顺序所需的乘法次数。
本主题包含多组样本输入!
输入描述:
输入多行。首先输入要相乘的矩阵个数n,每个矩阵的行数和列数,总数为2n。最后,输入要计算的规则。计算的规则是一个字符串,只由左右括号和大写字母( A~Z )组成。确保括号匹配,输入合法!输出描述:
输出所需的乘法次数的示例1
输入:
50 1010 2020 5 (A (BC))输出:
300分析:
1.当矩阵A的列数等于矩阵B的行数时,A和B可以相乘。
2.矩阵C的行数等于矩阵A的行数,C的列数等于b的列数。
3.乘积C的行M和列N中的元素等于矩阵A的行M和矩阵B的列N中相应元素的乘积之和.
代码实现如下:
while True:try:n=int(input())arr=[]order=[]RES=0 for I in range(n):arr . append(list(map(int,input()。split())))F=input()#(A(B(C(D(E(F(GH))))))#((AB)C)for I in F:if I . isalpha():order . append(arr[ord(I)-65])elif I==) and len(order)=2:# print(order)B=order . pop()A=order . pop()# print(A,B)RES=A[1]* B[1]* A[0]order . append([A
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。