gpt4 book ai didi

javascript - 包含范围内的随机 float 加倍

转载 作者:太空狗 更新时间:2023-10-29 16:24:10 27 4
gpt4 key购买 nike

由于 Math.random ()(以及大多数伪随机数生成器,AFAIK)在 [0,1) 中生成数字:

function randomInRange(min, max) {
return Math.random() * (max-min) + min;
}
// Notice that we can get "min" exactly but never "max".

我们如何才能在两个边界包含的所需范围内获得一个随机数,即[X,Y]

我想我们可以通过“滚动”IEE-754 floating point double precision 的位来“增加”Math.random()(或等价物)的值将最大可能值准确地设置为 1.0 但这似乎很难做到正确,尤其是在不适合位操作的语言中。有没有更简单的方法?

(顺便说一句,为什么随机数生成器在 [0,1) 而不是 [0,1] 中生成数字?)

[编辑] 请注意,我不需要这样做,我完全知道这种区别是迂腐的。只是好奇并希望得到一些有趣的答案。如果这个问题不合适,请随意投票关闭。

最佳答案

我相信有更好的决定,但这个应该可行:)

function randomInRange(min, max) {
return Math.random() < 0.5 ? ((1-Math.random()) * (max-min) + min) : (Math.random() * (max-min) + min);
}

关于javascript - 包含范围内的随机 float 加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9724404/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com