Ruby如何使用生成随机数

时间:2019-03-31 03:31:59

标签: ruby random

因此,当使用例如rand(10)时,ruby如何生成随机数?我对随机数生成技术的了解很少,所以我想更好地了解它们。

1 个答案:

答案 0 :(得分:2)

Ruby是open-source。我将演示如何定位PRNG(伪随机数生成器)代码,因为无法使用确定性CPU生成真正的随机数。

在存储库中,我们看到一个suspiciously-named file, random.c。在内部,它在C语言中,但是没关系,它带有注释。第一个函数是genrand_real,调用genrand_int32,它采用结构MT。此功能在mt19937.c中定义,然后查看该文件,它使用按位运算来获取随机数生成器的下一个状态,并应用更多按位运算符来生成所需的数字。