📌  相关文章
📜  国际空间研究组织 | ISRO CS 2013 |问题 44(1)

📅  最后修改于: 2023-12-03 14:50:46.787000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2013 |问题 44

这是一道 ISRO CS 2013 考试中的编程问题。

题目描述

编写一个程序,计算两个矩阵的乘积。

输入的第一行包含一个整数 $T$,表示有 $T$ 个测试用例。每个测试用例将有 $3$ 行。第一行包含一个整数 $R_1$ 和 $C_1$,分别表示第一个矩阵的行数和列数。接下来的 $R_1$ 行包含 $C_1$ 个整数,表示第一个矩阵的每个元素。接下来的一行包含一个整数 $R_2$ 和 $C_2$,分别表示第二个矩阵的行数和列数。接下来的 $R_2$ 行包含 $C_2$ 个整数,表示第二个矩阵的每个元素。

对于每个测试用例,输出一个 $R_1 \times C_2$ 的矩阵,表示两个矩阵的乘积。在输出矩阵之间放置一个空行。

样例输入
1
3 3
1 2 3
4 5 6
7 8 9
3 2
9 8
7 6
5 4
样例输出
46 40
118 103
190 86

解题思路

矩阵相乘的规律就是:第一个矩阵的行乘以第二个矩阵的列,然后相加,得到的就是新矩阵的一个元素。

在程序实现的时候,需要先读入两个矩阵,然后进行计算。具体而言,需要用两个数组来存储矩阵中的元素,然后使用嵌套循环依次计算每一个元素,最后输出新矩阵即可。

参考代码

下面是 Python 3 的参考实现。注意,由于这个问题涉及到多组测试数据,我们使用了 for 循环来多次运行代码。matrix_mul 函数实现了矩阵相乘的逻辑。