ruby - Ruby 如何使用生成随机数
问题描述
那么例如在使用 rand(10) 时,ruby 是如何生成随机数的呢?我对随机数生成技术知之甚少,所以我想更好地了解它们。
解决方案
Ruby 是开源的。我将演示如何定位 PRNG(伪随机数生成器)代码,因为无法使用确定性 CPU 生成真正的随机数。
查看存储库,我们看到一个名称可疑的文件 random.c。往里看,它是用 C 语言编写的,但没关系,它有注释。第一个函数是 genrand_real,调用 genrand_int32,它接受一个 struct MT。此函数在mt19937.c中定义并查看该文件,它使用按位运算来获取随机数生成器的下一个状态,并应用更多按位运算符来生成所需的数字。
推荐阅读
- typescript - 使用带有 typescript 的 Microsoft Graph 的问题
- scala - Scala Option.fold 在函数内外表现不同
- reactjs - 无法获取选项卡颜色或选项卡下方的栏以更改 reactjs
- reactjs - React-leaflet 在渲染时返回错误
- corda - 使用 Corda 基于帐户的模型,我可以确定交易签名者是否与状态中持久化的帐户匹配?
- python-3.x - 在 CSV 文件的一列中打印列表内的字典,而不是将其扭曲为多列以提高可读性
- python - “ConnectionResetError: [WinError 10054] 现有连接被远程主机强行关闭”在发送数据中
- flutter - SearchDelegate 在发布模式下不返回页面
- javascript - 如何仅从父标签而不是从子标签获取文本
- python - 无法通过 Python 代码导入 xgboost 模块