|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目:请问下面两个 print() 语句打印的结果是否相同,为什么?
import random
random.seed(1)
print(random.randint(1, 10), random.randint(1, 100), random.randint(1, 1000))
random.seed(1)
print(random.randint(1, 10), random.randint(1, 100), random.randint(1, 1000))
答:完全相同,因为它们拥有相同的种子。解析:默认的情况下,random 使用当前操作系统的时间作为随机数种子,所以产生的随机数看起来总是不会再现。但 random 同时允许我们通过技术手段“再现”伪随机数,那就是提供相同的种子。注意,这是一种设计,并不是什么 BUG。
这里为什么是种子的再现啊?再现不是要用getstate之后用setstate么?
还有这里random.seed(1)的格式括号里是不是少了个参数?文档里面的格式:random.seed(a=None, version=2),应该有两个参数啊,这里括号里的1是a还是version呢?
|
|