可重复的随机数种子和状态
设置特定种子将创建固定的随机数系列:
random.seed(5) # Create a fixed state
print(random.randrange(0, 10)) # Get a random integer between 0 and 9
# Out: 9
print(random.randrange(0, 10))
# Out: 4
重置种子将再次创建相同的随机序列:
random.seed(5) # Reset the random module to the same fixed state.
print(random.randrange(0, 10))
# Out: 9
print(random.randrange(0, 10))
# Out: 4
由于种子是固定的,这些结果总是 9
和 4
。如果只需要具有相同数字的特定数字,那么也可以使用 getstate
和 setstate
恢复到之前的状态:
save_state = random.getstate() # Get the current state
print(random.randrange(0, 10))
# Out: 5
print(random.randrange(0, 10))
# Out: 8
random.setstate(save_state) # Reset to saved state
print(random.randrange(0, 10))
# Out: 5
print(random.randrange(0, 10))
# Out: 8
要再次伪随机化序列,你需要 seed
与 None
:
random.seed(None)
或者在没有参数的情况下调用 seed
方法:
random.seed()