【发布时间】:2021-04-17 19:31:42
【问题描述】:
假设我使用 random.randrange 生成 10,000 个随机数,与对所有 10,000 个随机数使用相同的种子相比,在生成循环的部分过程中更改种子是否会对生成的值的分布产生任何有意义的差异?
import random
epoch = int(0)
while True:
if epoch%100 == 0: #every 100 epochs, generate a new seed
random.seed()
random.randrange(1,1000,1)
epoch += 1
我最初的想法是它不会,因为即使我们知道 python random 是确定性的,random.randrange(1,1000,1) 的每次连续运行仍然具有相同的权重,成为每个时期的 1000 个可能值中的任何一个。想法?
【问题讨论】:
-
不会。种子只是确定 PRG(伪随机数生成器)的状态。它与分布无关。它使您的随机数(或者更好地说是伪随机数)可重现。
标签: python random random-seed