在Excel中的两个值之间生成一个正态分布的随机整数列表

我需要使用给定的均值为正态分布生成一个下限和上限之间的随机整数值列表。 例如:在1到10之间的150个随机值的钟形分布,平均值为3.平均值可以近似(例如在2.8和3.2之间的浮点数),但是列表的数量需要是整数。

这个线程似乎指向可能的方向。 用NORM.INV(RAND(),mean,dev)我可以生成浮动,然后将其转换为整数,但我不知道如何限制最小值和最大值。 RANDBETWEEN()可以解决这个问题,但是它似乎不适用于NORM.INV

正态分布是一个连续分布,具有无限的范围,所以你不能达到你所说的目标。 你可以用舍入/天花板/地板离散,但是你也必须拒绝任何超出你想要的范围的结果,并重复这个尝试 – 而不是Excel中最简单的事情,离散化和截断都会改变你的意思。

可以做的是从一个离散的分布产生,这个分布的极限行为会收敛到一个正常状态。 两个这样的分布是泊松分布和二项分布。 既然你想要一个固定的范围,我会build议二项式。

二项式描述了你将从n独立试验中获得多less“成功”,每次试验的概率p都是“成功”的。 二项式的范围是0,…, n ,其期望值是n*p 。 如果你想要的实际范围是1,…,10,平均值是3,那么你应该生成一个n = 9和平均值为2的二项式,然后加上1来移动它。样本量9,你需要p = 2/9

总之,生成x = binomial(n = 9, p = 2/9) + 1 150个实例。 分析Tookpak或Crystal插件或@RISK等加载项可以为您生成二项式,或者可以将9个包含1的单元相加(如果RANDOM <= 2/9 ,否则为0。

RANDBETWEEN返回并将整数作为参数,在这里没有用处。

你可以使用类似NORM.INV(RAND() * 0.8 + 0.1, mean, dev) ,这将省略分布的底部和顶部10%。

如果你需要知道如何校准你想省略的概率的数量,那么让我知道。 (这取决于标准偏差以及平均值)。