|
简单来讲, python的random模块生成的随机数并不是真正的随机数, 其内部状态决定了生成的随机数的值.
内部状态可以通过random.getstate()来获取. 每次生成一个随机数之后,内部状态就会改变
random.setstate()可以恢复内部状态, 如果内部状态相同,那么生成的随机数也相同.
试试下面的代码:
内部状态1 = random.getstate()
print(random.random())
random.setstate(内部状态1)
print(random.random())
两次得到的随机数是相同的.
其实,相同内部状态之后的变化是相同的,即可以获得相同的随机数序列.
看下面的例子:
内部状态1 = random.getstate()
print(random.random())
print(random.random())
print(random.random())
random.setstate(内部状态1)
print(random.random())
print(random.random())
print(random.random())
这两个方法的作用和random.seed()有点相似. 不过比seed()更加灵活. |
|