使用python在范围内生成具有高斯函数的数字

我想在python中使用高斯函数在特定范围之间生成一些数字,给出均值和方差

所以我说我的范围在0到10之间

我希望我的意思是3,方差是4

mean = 3,variance = 4

我怎样才能做到这一点 ?

最佳答案
使用random.gauss.从docs

random.gauss(mu, sigma)
    Gaussian distribution. mu is the mean, and sigma is the standard deviation. This is slightly
    faster than the normalvariate() function defined below.

在我看来,你可以钳制这个结果,但这不会使它成为高斯分布.我认为你不能同时满足所有的限制.如果你想把它夹在[0,10]的范围内,你可以得到你的数字:

num = min(10, max(0, random.gauss(3, 4)))

但随后产生的数字分布将不是真正的高斯分布.在这种情况下,似乎你不能吃蛋糕也吃它.

转载注明原文:使用python在范围内生成具有高斯函数的数字 - 代码日志