我一生都无法记住或找到将标准均匀分布转换为范围为 [a, b] 的离散均匀分布的公式。我正在寻找的是一个离散的均匀随机数生成器,它产生 [a, b] 范围内的数字,我需要它是 Math.random() 的函数,其中 Math.random() 是一个连续的均匀分布范围为 [0, 1)
如果您知道这种转变,我将非常感谢您的帮助。
谢谢,
汤姆
在我看来,您想要从 [0, 1] 到 [a, b]的仿射变换。
那么x
在 [0,1] 中的哪个位置,您希望将其转换为a + x × (b - a)
然后对结果进行舍入。您需要四舍五入而不是简单地投射,否则您的分布会略微偏斜。
可以通过在铸造前添加 0.5 来进行四舍五入。