【发布时间】:2015-04-16 14:10:13
【问题描述】:
假设我有三个项目,每个项目都有一个从 1 到 3 的指定频率,其中 1 是“低”,3 是“高”。
Item A - 1
Item B - 2
Item C - 3
在重新计算工作表时,我希望一个单元格随机显示其中一项,但要根据它们的频率。
(即如果我计算 6 次,我希望项目 A 出现一次,项目 B 出现两次,项目 C 出现三次。)
理想情况下,我还会强制每次使用唯一的随机数(例如,1-6 中的每个数字只出现一次)。
我有一个可行的解决方案,但是在未来的工作表中设置非常耗时,而且我在回顾代码时几乎无法理解它 - 谁能想到一个巧妙的方法来做到这一点?
(我的解决方案涉及对频率求和以建立每个项目的边界[例如项目 C 的边界是 4-6],然后将随机数与该边界进行比较并搜索适当的项目)
【问题讨论】:
-
这里是c#的所有代码 ..只需复制并粘贴stackoverflow.com/a/33991225/294884(注意,事先求和它们是没有意义的,处理完全是微不足道的。在极端在不寻常的情况下,你必须生成数万亿个或其他东西,你会采取完全不同的方法。)
标签: excel vba random numbers frequency