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



我正在测试一种算法,它有随机输入:作为参考,输入是一系列浮点数字,这些数字与一些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

最新更新