random.seed()

 random.seed(seed) 是 Python 标准 random 模块中的一个函数调用,它用于确保随机数生成器产生可重复的结果。这在科学计算和机器学习中非常重要,因为它允许研究者和开发者重现实验结果。

  • seed 通常是一个整数,用作随机数生成器的种子值。当你在脚本或程序中使用 random.seed() 并传入一个特定的种子值时,随机数生成器将从一个已知的状态开始,因此每次运行代码时生成的随机数序列都将是相同的。 
  • 第二轮实验与第一轮实验,生成的随机数序列相同

 

############# 1.不使用随机种子

import random

# 不设置随机种子
random_number1 = random.randint(1, 100)
print(f"Random Number 1: {random_number1}")

random_number2 = random.randint(1, 100)
print(f"Random Number 2: {random_number2}")

# 当你运行这段代码时,每次生成的 random_number1 和 random_number2 值都可能不同,因为随机数生成器的初始状态是由当前时间或其他系统因素决定的。



############# 2.使用随机种子

import random

# 设置随机种子
random.seed(42)

# 生成随机数
random_number1 = random.randint(1, 100)
print(f"Random Number 1: {random_number1}")

random_number2 = random.randint(1, 100)
print(f"Random Number 2: {random_number2}")

# 当你运行这段代码时,无论你运行多少次,只要种子值保持为 42,random_number1 和 random_number2 的值都将是相同的。这是因为设置种子值 42 将随机数生成器的初始状态重置为一个已知的状态。
  • 这个特性在需要确保实验或模拟结果可重复的科学研究和数据分析中非常有用。通过使用固定的种子值,研究人员可以确保每次实验或模拟的随机组成部分都是相同的,从而使得结果更易于比较和验证。 

### Python `random.seed` 和 NumPy `np.random.seed` 的区别及用法 #### Python内置模块中的随机种子设置 在Python的标准库中,`random.seed()`用于初始化伪随机数生成器的状态。这使得每次运行程序时可以得到相同的随机序列,只要提供了相同的种子值。 ```python import random random.seed(42) # 设置种子为42 print(random.randint(0, 10)) ``` 此方法影响的是整个Python环境中基于`random`模块产生的所有类型的随机数值,包括整数、浮点数以及从列表或其他容器类型中抽取元素的操作[^3]。 #### 使用NumPy进行随机种子设定 对于NumPy而言,`np.random.seed()`同样用来控制随机数生成过程中的可重复性。然而,它仅作用于由NumPy提供的函数所创建的随机数组或单个随机数上。 ```python import numpy as np np.random.seed(42) # 设定NumPy的随机种子也为42 print(np.random.rand()) # 输出介于[0., 1.)之间的均匀分布随机样本 ``` 值得注意的是,在较新的版本中,推荐使用更灵活的方式通过`Generator`对象来管理状态: ```python rng = np.random.default_rng(seed=42) print(rng.uniform()) ``` 这种方式不仅限定了范围内的随机数生成,还支持更多种类的概率分布采样功能,并且具有更好的线程安全性特性[^1]。 当在同一项目里同时调用了来自不同包下的随机操作(比如既有纯Python也有NumPy),则需要分别针对各自使用的库单独指定相应的seed参数以确保结果的一致性和再现性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值