可重複的隨機數種子和狀態

設定特定種子將建立固定的隨機數系列:

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()