【发布时间】:2017-06-26 15:19:42
【问题描述】:
如何在 Java 中(使用 Eclipse)生成一个向特定数字加权的随机数?
例如,我有 100 个数字,每个数字都有 1% 的概率被平等地选择。但是,如果某个数字,比如说 5,在这 100 次中显示 8 次,那么它现在有 8% 的机会被随机选择,而其他数字仍然是 1%。
我如何编写一个随机生成器,它给我 10 个数字并给数字 5 显示 8% 的优势?
谢谢,如果我解释得不好。
【问题讨论】:
-
你能尝试改写这个问题吗?你的第二段基本上只是给出一个简单的概率问题。对于你的第三段,没有办法给出 10 个数字和 8% 的概率选择 5。每个号码至少有 10% 的机会被选中。 :)
-
用你的 100 个数字创建一个数组并选择一个随机索引。看起来很简单。
-
我不同意第二段:如果你连续八次从100个数字中选择第5个,那么下一次显示第5个仍然是1%,
-
@Patrick - 我认为 OP 是说只抽取了一个数字。
-
@R.James:我理解这个问题的方式,“100”数字不一定是 1-100,但可能是“5, 5, 5, 5, 5, 9, 10, 11 .... 等等”,而选择数字 5 的更大机会来自于在列表中多次出现该数字。也许提问者可以澄清一下,我完全理解错了。所有 100 个数字都是唯一的吗?它们是按顺序排列的吗?