python中seed的使用
所有标准库提供的Random函数其实都是假Random。
所谓假Random,是指所返回的随机数字其实是一个稳定算法所得出的稳定结果序列,而不是真正意义上的随机序列。
如果一直调用标准库Random,那么在调用了N次以后,输出结果就会循环最开始的序列了。
也就是说,标准库Random所能生成的不同结果的个数也是有限的。
32位系统一般也就是几万次以后就会出现重复。
Seed就是这个算法开始计算的第一个值, 所以只要seed是一样的,那么后续所有“随机”结果和顺序也都是完全一致的。
random.seed( ) 用于指定生成随机数时所用算法的初始值。
1.如果使用相同的seed( )值,则每次生成的随机数都相同;
2.如果不设置这个值,则系统根据时间来自己选择这个值。此时每次生成的随机数因时间差异而不同。
3.设置的seed()值仅一次有效
import random
num=0
while(num<5):
random.seed(5)
print(random.random())
num+=1
结果:
0.22199317108973948
0.22199317108973948
0.22199317108973948
0.22199317108973948
0.22199317108973948
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
import random
num=0
random.seed(5)
while(num<5):
print(random.random())
num+=1
结果:
0.22199317108973948
0.8707323061773764
0.20671915533942642
0.9186109079379216
0.48841118879482914
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
</div>
</article>