2 条题解

  • 0
    @ 2026-3-26 15:35:22

    NUMPY073 题解:计算矩阵的秩

    题目

    计算给定矩阵的秩。

    解题思路

    1. 读取矩阵
    2. 使用 \texttt{np.linalg.matrix_rank} 计算秩

    代码

    import numpy as np
    
    n = int(input())
    Z = np.array([list(map(float, input().split())) for _ in range(n)])
    rank = np.linalg.matrix_rank(Z)
    print(rank)
    

    代码详解

    \texttt{np.linalg.matrix_rank} 使用 SVD(奇异值分解)方法计算矩阵的秩。

    运行示例

    输入:

    3
    1 2 3
    4 5 6
    7 8 9
    

    分析:

    • 这是一个 3×33 \times 3 的矩阵
    • 第 3 行是前两行的线性组合(7,8,9=1×(1,2,3)+1×(6,6,6)7,8,9 = 1 \times (1,2,3) + 1 \times (6,6,6)
    • 因此秩为 22

    输出:

    2
    

    核心知识点

    1. \texttt{np.linalg.matrix_rank} —— 计算矩阵秩
    2. SVD 分解
    • 0
      @ 2026-3-26 15:34:43

      NUMPY073 题解:计算矩阵的秩

      题目

      计算给定矩阵的秩。

      解题思路

      1. 读取矩阵
      2. 使用 \texttt{np.linalg.matrix_rank} 计算秩

      代码

      import numpy as np
      
      n = int(input())
      Z = np.array([list(map(float, input().split())) for _ in range(n)])
      rank = np.linalg.matrix_rank(Z)
      print(rank)
      

      代码详解

      \texttt{np.linalg.matrix_rank} 使用 SVD(奇异值分解)方法计算矩阵的秩。

      运行示例

      输入:

      3
      1 2 3
      4 5 6
      7 8 9
      

      分析:

      • 这是一个 3×33 \times 3 的矩阵
      • 第 3 行是前两行的线性组合(7,8,9=1×(1,2,3)+1×(6,6,6)7,8,9 = 1 \times (1,2,3) + 1 \times (6,6,6)
      • 因此秩为 22

      输出:

      2
      

      核心知识点

      1. \texttt{np.linalg.matrix_rank} —— 计算矩阵秩
      2. SVD 分解
      • 1

      信息

      ID
      380
      时间
      1000ms
      内存
      256MiB
      难度
      (无)
      标签
      (无)
      递交数
      0
      已通过
      0
      上传者