随机数及随机种子

随机数生成器

随机数生成器主要分为两类:真随机数生成器(TRNG)和伪随机数生成器(PRNG)。

真随机数生成器(TRNG)

  • 真随机数生成器基于物理过程(如热噪声、放射性衰变等)来产生随机数。这类生成器产生的随机数序列在理论上可以是无限长的,但实际上受限于采集和记录数据的物理设备的限制。

伪随机数生成器(PRNG)

  • 伪随机数生成器通过算法来产生看似随机的数。由于算法是确定的,因此给定相同的种子或初始状态,PRNG将产生完全相同的随机数序列。PRNG产生的随机数序列的长度是有限的,通常由其算法设计和内部状态大小决定。只要随机种子相同,随机序列就会相同,即重新设置完随机种子之后,接下来每次随机出来的值是确定的。

随机种子生成的算法

1. 线性同余法(LCGs)

  • 基于一个递归公式生成新的随机数,如 Xn+1 = (aXn + c) mod m,其中 acm 是预先设定的常数。

2. 梅森旋转算法(Mersenne Twister)

  • 一种高性能的伪随机数生成器,因其周期长且通过多项式混沌映射产生的随机性较好而广泛应用于各种编程语言的标准库中。

3. 中间平方法(Mid-square Method)

  • 早期由冯·诺依曼提出的随机数生成方法,通过计算并截取大整数平方的中间部分作为下一个随机数种子。

4. 组合线性同余发生器(Combined LCGs )

  • 为了提高随机数的质量,将多个线性同余发生器的结果组合起来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值