use*_*156 1 python random math
所以我想说我想在-1000到1000之间生成一个随机数,我希望平均值为x.我该怎么做?
编辑:为了清楚起见,生成的数字应该落在标准正态分布中,平均值为x.
因此,如果我生成了一千个数字并找到了它们的平均数,则它将是x.
我试过这个,但它似乎不起作用:
sum_ = 0
for i in range(0, 10):
sum_ += random.triangular(-1000, 1000, 10)
print sum_ / 10
Run Code Online (Sandbox Code Playgroud)
我希望这能给我一些东西~10但我显然没有使用正确的代码.
标准正态分布具有无限范围,在任何给定区间之外找到点的非零概率.你可以使用三角形,只要记住它的意思就是(a + b + mode) / 3让triangular(a, b, 3*x - a - b)你得到你想要的东西:
from random import triangular
a = 0
b = 10
x = 3
test = [triangular(a, b, 3*x - a - b) for _ in range(1000)]
sum(test) / 1000.0
# 3.006828109140065
Run Code Online (Sandbox Code Playgroud)