我需要使用给定的均值生成正态分布的下限和上限之间的随机整数值列表。例如:1到10之间的150个随机值的钟分布,平均值为3.均值可以近似(例如,浮点数在2.8和3.2之间),但列表的数量必须是整数。
这thread似乎指出了可能的方向。使用NORM.INV(RAND(),mean,dev)我可以生成浮点数然后将它们转换为整数,但我不知道如何限制最小值和最大值。 RANDBETWEEN()可以解决这个问题,但它似乎不适用于NORM.INV
答案 0 :(得分:1)
正态分布是具有无限范围的连续分布,因此您无法实现既定目标。您可以使用舍入/天花板/地板对其进行离散化,但是您还必须拒绝超出所需范围的任何结果并重复尝试 - 这不是Excel中最容易的事情,离散化和截断都会改变您的意思
两个这样的分布是泊松和二项式。既然你想要一个固定的范围,我建议使用二项式。
二项式描述了从n
个独立试验获得的“成功”数量,每个试验都有p
产生“成功”的概率。二项式的范围是0,...,n
,其期望值为n*p
。如果你想要实际范围是1,...,10和3的平均值,你应该生成一个n = 9
和平均值为2的二项式,然后通过加1来移动它。得到平均值为2样本大小为9时,您需要p = 2/9
。
总之,生成150个x = binomial(n = 9, p = 2/9) + 1
个实例。分析诸如Crystal Ball或@RISK之类的Tookpak或加载项可以为您生成二项式,或者如果RANDOM <= 2/9
,则可以将9个单元格包含为1,否则为0。
答案 1 :(得分:0)
RANDBETWEEN
返回并将整数作为参数,这在这里没用。
你可以使用像NORM.INV(RAND() * 0.8 + 0.1, mean, dev)
这样的东西,它将省略分布的底部和前10%。
如果您需要知道如何校准想要省略的概率,请告诉我。 (这取决于标准偏差和平均值)。