【问题标题】:Standard Uniform Dist to Discrete Uniform [a, b]标准均匀分布到离散均匀 [a, b]
【发布时间】:2011-08-07 05:22:52
【问题描述】:

我一生都无法记住或找到将标准均匀分布转换为范围为 [a, b] 的离散均匀分布的公式。我正在寻找的是一个离散的均匀随机数生成器,它产生 [a, b] 范围内的数字,我需要它是 Math.random() 的函数,其中 Math.random() 是一个连续的均匀分布范围为 [0, 1)

如果您知道这种转变,我将非常感谢您的帮助。
谢谢,
汤姆

【问题讨论】:

  • 我想我可能已经明白了。 (int)(a + Math.random() * (b - a + 1))

标签: random numbers generator uniform


【解决方案1】:

在我看来,您想要 [0, 1] 到 [a, b] 的 affine transformation

因此,x 在 [0,1] 中的位置,您需要将其转换为 a + x × (b - a),然后将结果四舍五入。您需要四舍五入,而不是简单地投射,否则您的分布会略微偏斜。

可以通过在转换前添加 0.5 来完成使用转换的舍入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多