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

📅  最后修改于: 2023-12-03 15:23:02.755000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2008 |问题 9

这是一个关于矩阵转置的问题。给定一个n * n的矩阵,你需要将其转置并输出。

输入格式
  • 第一行包含一个整数 n,表示矩阵的维度。
  • 接下来 n 行,每行包含 n 个整数,表示矩阵中的元素。
输出格式
  • 输出 n 行,每行 n 个整数,表示转置后的矩阵。
示例

输入:

3
1 2 3
4 5 6
7 8 9

输出:

1 4 7
2 5 8
3 6 9
解题思路

这道题目用程序实现其实非常简单,只需要将原矩阵的每一行变成转置后矩阵的每一列即可。

核心代码如下:

for i in range(n):
    for j in range(n):
        # 注意是 matrix[j][i]
        transposed_matrix[i][j] = matrix[j][i]

实现代码如下:

def transpose_matrix(matrix):
    n = len(matrix)

    # 初始化转置后的矩阵
    transposed_matrix = [[0 for _ in range(n)] for _ in range(n)]

    # 进行矩阵转置
    for i in range(n):
        for j in range(n):
            transposed_matrix[i][j] = matrix[j][i]

    return transposed_matrix

代码说明:

  • transpose_matrix 函数接收一个 n * n 的矩阵;
  • 初始化一个全零的 n * n 矩阵作为转置后的矩阵;
  • 遍历原矩阵,将每一行变成转置后矩阵的每一列;
  • 返回转置后的矩阵。

注意:转置后的矩阵和原矩阵是不同的对象,所以在使用的时候需要重新赋值或者使用引用。