x% 发生概率的最佳算法?
Best algorithm for x% chance of happening?
我需要在所有页面浏览量的可配置 x% 页面浏览量上发生事件。
我想确保我在这里正确地考虑了概率。
以下代码运行每个页面浏览。
如果我希望事件在 99% 的时间内发生
do_thing if SecureRandom.random_number(1..100) <= 99
如果我希望事件在 10% 的时间内发生
do_thing if SecureRandom.random_number(1..100) <= 10
我知道概率中存在细微差别的“陷阱”,我想确保这是最好的方法。
你的方案在概率计算上是可以的。但我会使用 ruby 方法 Kernel#rand
来保存一些 space:
rand * 100 <= 99
要么
rand(1..100) <= 99
我需要在所有页面浏览量的可配置 x% 页面浏览量上发生事件。
我想确保我在这里正确地考虑了概率。
以下代码运行每个页面浏览。
如果我希望事件在 99% 的时间内发生
do_thing if SecureRandom.random_number(1..100) <= 99
如果我希望事件在 10% 的时间内发生
do_thing if SecureRandom.random_number(1..100) <= 10
我知道概率中存在细微差别的“陷阱”,我想确保这是最好的方法。
你的方案在概率计算上是可以的。但我会使用 ruby 方法 Kernel#rand
来保存一些 space:
rand * 100 <= 99
要么
rand(1..100) <= 99