标准均匀距离到离散均匀 [a, b]

发布于 2024-11-02 07:40:04 字数 196 浏览 4 评论 0原文

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

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

I can not for the life of me remember or find the formula for transforming the standard uniform distribution to a discrete uniform distribution with a range of [a, b]. What I'm looking for specifically is a discrete uniform random number generator that produces numbers in the range of [a, b] and I need it to be a function of Math.random() where Math.random() is a continuous uniform distribution with a range of [0, 1)

If you know that transformation I would greatly appreciate your help.
Thanks,
Tom

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

停顿的约定 2024-11-09 07:40:04

在我看来,您想要 [0, 1] 到 [a, b] 的 仿射变换 ]。

因此,如果 x 位于 [0,1] 中,您需要将其转换为 a + x × (b - a) ,然后对结果进行舍入。您需要舍入而不是简单地进行投射,否则您的分布会稍微倾斜。

可以通过在铸造前添加 0.5 来进行铸造舍入。

It looks to me like you want an affine transformation of [0, 1] to [a, b].

So where x is in [0,1] you'd want to transform it to a + x × (b - a) then round the result. You need to round and not to simply cast or your distribution will be slightly skewed.

Rounding with a cast can be done by adding 0.5 before casting.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文