Ago*_*ino 2 python random numpy random-seed
我想以可预测的方式生成随机种子.
我本来希望这样做
seed = 12345
prng_0 = random.Random(seed)
prng_1 = random.Random(prng_0.rand_int(0))
Run Code Online (Sandbox Code Playgroud)
在那里,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
Run Code Online (Sandbox Code Playgroud)
编辑:有趣的是,numpy(我也在使用)有一个明确的上部种子值,由doc和这个错误证明
ValueError:Seed必须介于0到4294967295之间