3、随机数生成:原理、方法与应用

随机数生成:原理、方法与应用

1. 随机数生成程序概述

在随机数生成的相关程序中,有一个程序会打开指定的输出文件名(第17行),然后循环请求指定数量的64位随机整数(第18 - 24行)。其中的 random 函数会用一个随机值更新给定的64位整数,如果成功,该随机值会被写入输出文件(第20行)。

random 函数有点特别,我们只想要一个随机值,为什么会有一个 for 循环呢?这是因为 RDRAND 指令使用了一个硬件生成器,它基于CPU中的熵源来更新硬件实现的伪随机生成器的种子。所以,每次调用使用 RDRAND __builtin_ia32_rdrand64_step 函数时,可能实际上并没有准备好可供读取的值。这个循环会尝试十次,这是推荐的做法,因为根据二项分布,在这种情况下,值永远准备不好的可能性极小。如果真的发生了这种情况,函数将返回零,程序也会停止。

2. 随机与伪随机序列

本章介绍了随机和伪随机序列的概念。给出了真正随机性来源的例子,并使用其中一个来源进行了实验,以生成随机字节序列。然后,通过一个简单的模拟(蒙提霍尔困境),验证了字节序列的表现是合理的。同时,另一个实验表明人类不擅长生成随机数。还展示了劣质伪随机序列对模拟(分形)的影响,并简要介绍了现代CPU生成随机数的方法。

3. 均匀随机数生成

大多数伪随机数生成器的核心操作是生成在某个范围内均匀分布的伪随机整数。我们定义一个均匀伪随机数生成器 P

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值