Python 在每次运行测试时生成相同的概率分布

Python 在每次运行测试时生成相同的概率分布,python,random,Python,Random,我正在测试一个算法,它有随机输入:作为参考,输入是一个浮点数序列,加上一些0和1(相对较少的1) 最后,1的概率和位置都是随机的。然而,这很难调试 概率目前按照狄里克莱分布分布: import numpy.random as ran N=1024 num_ones = 10 probs = ran.dirichlet([1]*N) probs = num_ones*probs probs = probs probs = sorted(probs, reverse=True) 我意识到这可能很

我正在测试一个算法,它有随机输入:作为参考,输入是一个浮点数序列,加上一些0和1(相对较少的1)

最后,1的概率和位置都是随机的。然而,这很难调试

概率目前按照狄里克莱分布分布:

import numpy.random as ran

N=1024
num_ones = 10
probs = ran.dirichlet([1]*N)
probs = num_ones*probs
probs = probs
probs = sorted(probs, reverse=True)
我意识到这可能很幼稚,但我真的不知道随机数是如何产生的。如何在每次运行测试时使这些概率相同?

调用

numpy.random.seed(x)
其中,
x
是一个常数,每次运行程序时都会有相同的随机样本。

您可以“种子”随机数生成器,使其在每次运行时生成相同的数字

numpy.random.seed(123) # change the seed for different tests

给随机数发生器种子?比如
numpy.random.seed(42)
?你可能想检查链接问题中的第二个答案,他建议只在
.seed()上使用
RandomState
,并在注释中解释。