首页 > 解决方案 > Ruby 如何使用生成随机数

问题描述

那么例如在使用 rand(10) 时,ruby 是如何生成随机数的呢?我对随机数生成技术知之甚少,所以我想更好地了解它们。

标签: rubyrandom

解决方案


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

查看存储库,我们看到一个名称可疑的文件 random.c。往里看,它是用 C 语言编写的,但没关系,它有注释。第一个函数是 genrand_real,调用 genrand_int32,它接受一个 struct MT。此函数在mt19937.c中定义并查看该文件,它使用按位运算来获取随机数生成器的下一个状态,并应用更多按位运算符来生成所需的数字。


推荐阅读