Python 如何设置随机种子,随机?

Python 如何设置随机种子,随机?,python,random,multiprocessing,random-seed,Python,Random,Multiprocessing,Random Seed,我正在运行一个依赖于随机性的大规模并行进程。问题是并行进程中的每个工作进程与父进程共享相同的随机种子,从而破坏了我运行不同随机模拟的尝试 因此,我的问题是如何在开始时为每个工作者设置一个不同的随机种子。我当前的解决方案是将time.time的微秒部分去掉,并将其转换为整数,然后再将其传递给random.seed。它看起来如下所示。有更好的办法吗 import re import random import time def set_random_seed(): seed = int(re

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

因此,我的问题是如何在开始时为每个工作者设置一个不同的随机种子。我当前的解决方案是将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)
见:

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

random.seed()

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

也可以从文档中。。。如果省略或无,则使用当前系统时间。如果操作系统提供随机性源,则使用随机性源代替系统时间。有关可用性的详细信息,请参阅os.uradom函数。看来我找到了回到起点的路…有必要打电话给random.seed吗?请参阅,这是random.seed在没有传递参数且操作系统不支持生成随机数时的行为。美好的