可重複的隨機數種子和狀態
設定特定種子將建立固定的隨機數系列:
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()