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