python random模块中seed函数的详解_random.seed()函数理解

Python的random模块使用Mersenne Twister算法,可通过random.seed()设定初始种子。seed()若不设值则依赖系统时间,设值相同则每次生成的随机数序列相同。例子展示了seed()如何影响随机数生成,即使在循环中,种子值相同也确保了序列的一致性。
摘要由CSDN通过智能技术生成

random模块使用Mersenne Twister算法来计算生成随机数。这是一个确定性算法,但是可以通过random.seed()函数修改初始化种子[1]。比如:

random.seed() # Seed based on system time or os.urandom()

random.seed(12345) # Seed based on integer given

random.seed(b'bytedata') # Seed based on byte data

对于random.seed(n),如果使用相同的n值,则随机数生成函数每次生成的随机数序列都相同;如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数序列因时间差异而不同。

例1

import random

random.seed(9)

for i in range(3):

print(random.random())

运行结果如下:

0.46300735781502145

0.37331193139504204

0.13853941251445523

本例中,每次循环时random.random()都采用9作为初始化的种子,生成相同的随机数序列。在循环中,第一次调用random.random()将返回该随机数序列的第一个元素,第二次调用random.random()将返回该随机数序列的第二个元素,以此类推。

再次运行示例代码的结果如下:

0.46300735781502145

0.37331193139504204

0.13853941251445523

多次运

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值