如何在Excel中的随机数生成器中实现“频率”?

时间:2015-02-16 05:33:43

标签: excel vba random numbers frequency

假设我有三个项目,每个项目的指定频率为1-3,其中1个为“低”和“低”。并且3是'高'

Item A - 1  
Item B - 2  
Item C - 3

在重新计算工作表时,我希望一个单元格显示这些项目中的随机项目,但是根据它们的频率。

(即如果我计算6次,我会期望项目A出现一次,项目B出现两次,项目C出现三次。)

理想情况下,每次使用随机数字时,我也强制预期值(例如1-6中的每个数字只出现一次)。

已经一个可行的解决方案,但在将来的工作表中进行设置非常费时,我几乎无法理解它回顾代码 - 任何人都可以想到一个简洁的方法做到了吗?

(我的解决方案包括汇总频率以确定每个项目的边界[例如,项目C的边界将是4-6]然后将随机数与该边界进行比较并搜索适当的项目)

1 个答案:

答案 0 :(得分:1)

在统计学中,这被称为伯努利分布(参见维基百科http://en.wikipedia.org/wiki/Bernoulli_distribution)。在Excel工作表中很容易实现:从标准均匀分布(使用函数RAND)绘制,如果绘制小于1/6(对于项目A),则结果为1,否则结果为0对于项目B和C,使用相同的逻辑,但概率为2/6和3/6。您可以通过对所有项目重复此操作来测试结果,例如1000次,然后计算平均值。结果应该非常接近您的预期概率。用于给定项目的公式为:

=IF(RAND()<=A$1;1;0)

其中A1包含概率(例如,项目A的1/6)