伪随机数 编辑
伪随机性是一个过程似乎是随机的,但实际上并不是。例如伪随机数是使用一个确定性的算法计算出来的似乎是随机性的数序,因此伪随机数实际上并不随机。在计算伪随机数时假如使用的开始值不变的话,那么伪随机数的数序也不变。伪随机数的随机性可以用它的统计学特性来衡量,其主要特征是每个数出现的可能性和它出现时与数序中其它数的关系。伪随机数的优点是它的计算比较简单,而且只使用少数数值很难推算出计算它的算法。一般人们使用一个假的随机数,比如电脑上的时间作为计算伪随机数的开始值。
1
相关
由于所有的计算机算法均是确定性算法,因此在电脑上的随机函数生成的都是伪随机数,不过,伪随机数和伪随机数之间也有区别,且至少可以分为两个层次:统计学伪随机数、密码学安全伪随机数。大部分编程语言库中预备了的随机函数生成的都是前一种,而密码学安全伪随机数则由一类叫做CSPRNG的随机函数生成。对于实际问题中的大部分应用,这两个不同层次的伪随机数已经可以满足大部分随机数的需求。
由于所有的计算机算法均是确定性算法,因此在电脑上的随机函数生成的都是伪随机数,不过,伪随机数和伪随机数之间也有区别,且至少可以分为两个层次:统计学伪随机数、密码学安全伪随机数。大部分编程语言库中预备了的随机函数生成的都是前一种,而密码学安全伪随机数则由一类叫做CSPRNG的随机函数生成。对于实际问题中的大部分应用,这两个不同层次的伪随机数已经可以满足大部分随机数的需求。
置换同余生成器,简称PCG是一个用于产生伪随机数的算法,开发于2014年。该算法在线性同余生成器的基础上增加了输出置换函数,以此优化LCG算法的统计性能。因此,PCG算法在拥有出色的统计性能的同时,也拥有LCG算法代码小、速度快、状态小的特性。