python 矩阵乘法

 

地址:https://www.nowcoder.com/practice/ebe941260f8c4210aa8c17e99cbc663b?tpId=37&&tqId=21292&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking

 

 1 # @Author  :whyCai
 2 # @Time    :2021/6/6 11:31
 3 
 4 '''
 5 描述
 6 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的
 7 
 8 矩阵的大小不超过100*100
 9 输入描述:
10 输入包含多组数据,每组数据包含:
11 第一行包含一个正整数x,代表第一个矩阵的行数
12 第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数
13 第三行包含一个正整数z,代表第二个矩阵的列数
14 之后x行,每行y个整数,代表第一个矩阵的值
15 之后y行,每行z个整数,代表第二个矩阵的值
16 
17 输出描述:
18 对于每组输入数据,输出x行,每行z个整数,代表两个矩阵相乘的结果
19 示例1
20 输入:
21 2
22 3
23 2
24 1 2 3
25 3 2 1
26 1 2
27 2 1
28 3 3
29 输出:
30 14 13
31 10 11
32 
33 '''
34 
35 while(True):
36     try:x=int(input())
37     except:break
38     y = int(input())
39     z = int(input())
40     xy = []
41     yz = []
42     res=[]
43     for i in range(x):
44         xyi = input().split()
45         xy.append([int(i) for i in xyi])
46     for i in range(y):
47         yzi = input().split()
48         yz.append([int(i) for i in yzi])
49     # print(xy)
50     # print(yz)
51 
52 
53     for i in range(x):
54         # sum =0
55         strRes = ''
56         for j in range(z):
57             sum = 0
58             for k in range(y):
59                 sum +=xy[i][k] * yz[k][j]
60             res.append(sum)
61         # str = ''
62         for ii in res:
63             strRes += str(ii) +' '
64         print(strRes)
65         res=[]

 

posted @ 2021-06-05 23:10  菜小鱼~  阅读(317)  评论(0编辑  收藏  举报