如何随机设置随机种子?

克里斯康兰

我正在运行一个依赖于随机性的大规模并行化进程。问题在于并行进程中的每个工作进程与父进程共享相同的随机种子,从而破坏了我运行不同随机模拟的尝试。

因此,我遇到了如何在开始时为每个工人设置不同的随机种子的问题。我目前的解决方案是去掉微秒部分time.time()并将其转换为整数,然后再将其传递给random.seed(). 它看起来像下面这样。有没有更好的办法?

import re
import random
import time
def set_random_seed():
    seed = int(re.sub(r'[^0-9]', '', str(time.time())[-7:]))
    random.seed(seed)
彼得·普拉兹莫

请参阅:https : //docs.python.org/3/library/random.html#random.seed

如果省略种子,将使用os.urandom - 如果可用。你可以打电话:

random.seed()

如果您担心不太可能os.urandom出现不可用的情况,请在您的主流程中生成唯一的种子,并将一个种子传递给您启动的每个流程。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章