相关疑难解决方法(0)

random.random() 在 python 中究竟是如何工作的?

我对 random.random() 函数在 python 中的工作方式有点困惑。

文档说,它的回归在[0.0,1.0)的范围内的下一个随机浮点数'。我知道伪随机数生成器通过对值执行一些操作来工作。通常,此值是生成器生成的前一个数字。所以我认为这就是“下一个随机浮点”在这里意思。(如果我错了,请纠正我)

但是当我看到随机库的源代码时,在class Random. 相反,它的定义class SystemRandom如下(代码的第 671 行):

 def random(self):
        """Get the next random number in the range [0.0, 1.0)."""
        return (int.from_bytes(_urandom(7), 'big') >> 3) * RECIP_BPF
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,这个函数会使用 os.urandom 生成一个随机数。根据文档,其中从特定于操作系统的随机性源返回随机字节。所以这不会给出“下一个”浮点随机数。

两者是如何联系起来的?或者它们是两种不同的东西?

我在这里很困惑。任何形式的帮助将不胜感激。

谢谢!

python random

6
推荐指数
2
解决办法
9793
查看次数

标签 统计

python ×1

random ×1