【发布时间】:2014-04-06 08:20:46
【问题描述】:
我正在学习 python 的随机模块。而且我知道它会生成伪随机数。它的核心思想是使用一个高频时钟作为种子,然后使用一个函数来产生一个“看起来像随机数”。
据我所知,在现实世界中甚至不可能产生真实的随机数。
但我知道 Unix 随机数产生器引入了一些其他因素,例如鼠标移动轨迹的参数,IO 响应时间,给它的随机数产生器函数引入了不确定性。通过它我们可以获得比普通伪随机数更好的随机数。更难预测。
那么,有没有办法在 python 中产生这样一个随机数,或者导入一个好的第三方库?
【问题讨论】:
-
使用 random.SystemRandom
-
@U2EF1,如何使用该函数生成数字?我在文档上没有看到太多关于该功能的描述。
-
可以在
random上调用的所有函数都可以在random.SystemRandom的实例上调用。例如,rng = random.SystemRandom(); x = rng.randint(1, 10)。 -
还有一个问题,如果random.SystemRandom()可以生成更好的随机数,为什么python不直接使用它作为默认生成器呢?因为它更慢?
-
速度要慢得多,是的。