1 条题解

  • 0
    @ 2026-3-26 20:19:19

    NUMPY013 题解:随机数组最值

    题目

    给定一个整数 nn,创建一个 n×nn \times n 的随机数组,找出其中的最小值和最大值(使用种子 4242 确保可复现)。

    解题思路

    1. 读取整数 nn
    2. 使用 np.random.seed(42) 设置随机种子
    3. 使用 np.random.random() 创建随机数组
    4. 使用 .min().max() 获取最值

    代码

    import numpy as np
    
    n = int(input())
    np.random.seed(42)
    Z = np.random.random((n, n))
    print(Z.min())
    print(Z.max())
    

    代码详解

    1. 设置随机种子

    np.random.seed(42)
    
    • 设置种子为 42,确保每次运行结果相同
    • 不同种子会产生不同的随机数序列

    2. 创建随机数组

    Z = np.random.random((n, n))
    
    • 生成形状为 (n,n)(n, n) 的二维随机数组
    • 随机数范围:[0, 1)

    3. 获取最值

    Z.min()  # 最小值
    Z.max()  # 最大值
    

    运行示例

    输入:

    10
    

    输出:

    0.005522117123602399
    0.9868869366005173
    

    随机种子的作用

    为什么需要种子?

    # 没有种子:每次结果不同
    Z = np.random.random((3, 3))
    # 第1次:[0.12, 0.56, ...]
    # 第2次:[0.89, 0.34, ...]
    
    # 有种子:每次结果相同
    np.random.seed(42)
    Z = np.random.random((3, 3))
    # 第1次:[0.37, 0.95, ...]
    # 第2次:[0.37, 0.95, ...]
    

    常见种子值

    • 0, 42, 123 —— 常用种子值
    • np.random.seed() 不带参数 —— 使用系统时间

    其他获取最值的方法

    # 方法1:NumPy 函数
    np.min(Z)
    np.max(Z)
    
    # 方法2:数组方法
    Z.min()
    Z.max()
    
    # 方法3:沿轴操作
    Z.min(axis=0)  # 每列最小值
    Z.min(axis=1)  # 每行最小值
    

    核心知识点

    1. np.random.seed() —— 设置随机种子
    2. np.random.random() —— 生成随机数组
    3. .min() / .max() —— 获取最值
    4. 种子用于保证结果可复现
    • 1

    信息

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