我希望以可预测的方式生成一个随机的种子。
我希望能够实现这个目标。
seed = 12345
prng_0 = random.Random(seed)
prng_1 = random.Random(prng_0.rand_int(0))
这里,0
是下限,但事实证明我还需要给它一个上限。我不想设置一个固定的上限。
如果你好奇我的原因,那是因为我在测试时需要可重复性。也就是说,这是一个接收种子并构建其prng(伪随机数生成器)prng_0
的函数,然后多次调用另一个需要每次接收不同种子的函数。
def funct_a(seed=None):
prng_1 = random.Random(seed)
prng_2 = numpy.random.RandomState(prng_1.randint(0, 4294967296))
print(prng_1.random())
print(prng_2.random())
def funct_b(seed=None):
prng_0 = random.Random(seed)
for i in range(0, 5):
seed = prng_0.randint(0) # not working, needs upper bound
funct_a(seed)
funct_b(12345) # test call
编辑:有趣的是,我也在使用的NumPy库具有明确的最大种子值,如文档和这个错误所证明的:
ValueError: 种子必须在0到4294967295之间