4

如何创建基于概率计算随机数的随机数生成器?

例如,我有以下数字,它们从单元格 A1 和 B1 开始出现的概率:

100 5%
75  10%
50  42%
30  30%
15  5%
0   8%

因此,该公式将“随机”返回 5% 的数字“15”。

4

3 回答 3

6

开销略少:

制作您的值的参考图表,以及概率的运行总和:

C   D   E
100 5%  0
75  10% 5%
50  42% 15%
30  30% 57%
15  5%  87%
0   8%  92%

然后在这个图表上查找一个 0-1 的随机数。 =LOOKUP(RAND(),$E$2:$E$7,$C$2:$C$7)

我生成了 5224 个数字并生成了这个结果的透视图。刷新导致百分比在目标附近有点动摇,但所有尝试看起来都不错。

Row Labels  Count   Percentage  Target
       0     421        8.06%      8%
      15     262        5.02%      5%
      30    1608       30.78%     30%
      50    2160       41.35%     42%
      75     490        9.38%     10%
     100     283        5.42%      5%
Grand Total 5224    100.00% 

或者你可以用两个单元格和一个长的 if 语句来做到这一点: =RAND() =IF(A9<0.05,100,IF(A9<0.15,75, ... 0))...

于 2013-04-25T21:18:58.980 回答
2

此功能作为分析工具包插件的一部分提供。您可以在 Excel 选项 -> 插件 -> 管理插件中找到它。

您想要生成随机数,然后选择“离散”分布。对此的输入是您在帖子中提供的表格。

“离散以一个值和相关的概率范围为特征。范围必须包含两列:左列包含值,右列包含与该行中的值关联的概率。概率之和必须为 1。”

jsarma 的建议也不错....

于 2013-04-25T21:25:11.187 回答
1

您可以使用 vlookup 和 randbetween。

您将需要使用 randbetween。http://office.microsoft.com/en-us/excel-help/randbetween-HP005209230.aspx

vlookup: http: //office.microsoft.com/en-us/excel-help/vlookup-HP005209335.aspx

用 1-100 范围内的连续数字填充一列。用 5 100's、10 75's、42 50's 等填充另一列...

现在...

=VLOOKUP(RANDBETWEEN(1,100),A1:B100,2)

可能有更好的方法来做到这一点,但我试过了,它似乎有效。

于 2013-04-25T20:58:49.520 回答