所以我想说我想在-1000到1000之间生成一个随机数,我希望平均值为x.我该怎么做?
编辑:为了清楚起见,生成的数字应该落在标准正态分布中,平均值为x.
因此,如果我生成了一千个数字并找到了它们的平均数,则它将是x.
我试过这个,但它似乎不起作用:
sum_ = 0 for i in range(0, 10): sum_ += random.triangular(-1000, 1000, 10) print sum_ / 10
我希望这能给我一些东西~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