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