007讲课后作业
题目:请问下面两个 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呢? 没事,这种概念还可以不理解,以后用不到的! 虽然我也没理解......{:10_277:} 不写关键字,参数按照设置的顺序,1是a的参数
关于你说的种子再现,解析也说了,只要参数(种子)一样,就能够对其随机器再现,所以random是一个伪随机 1是a,version是默认值2
页:
[1]