可重复的随机数种子和状态

设置特定种子将创建固定的随机数系列:

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

由于种子是固定的,这些结果总是 94。如果只需要具有相同数字的特定数字,那么也可以使用 getstatesetstate 恢复到之前的状态:

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

要再次伪随机化序列,你需要 seedNone

random.seed(None)

或者在没有参数的情况下调用 seed 方法:

random.seed()