伪随机数
维基百科,自由的百科全书
伪随机数是使用一个确定性的算法计算出来的,似乎是随机的数序。因此伪随机数实际上并不随机。在计算伪随机数时假如使用的开始值不变的话,那么伪随机数的数序也不变。用来计算伪随机数的函数被称为随机函数。
伪随机数的随机性可以用它的统计特性来衡量,其主要特征是每个数出现的可能性和它出现时与数序中其它数的关系。
一般人们使用一个真的随机数(比如用户运动鼠标的路径的坐标)作为计算伪随机数的开始值。伪随机数的优点是它的计算比较简单,而且只使用少数数值很难推算出计算它的算法。
[编辑] 特性
一些随机函数是周期性的,虽然一般来说使用非周期性的函数要好得多,但周期性的随机函数往往快得多。有些周期函数的系数可以调整,之后它们的周期非常大,基本上与非周期的函数效果一样。也有些函数是有尽止的,用它们无法计算出无限多个伪随机数。
[编辑] 使用
在电脑模拟中伪随机数用来模拟随机的过程。在寻找电脑程序的错误时有时也可应用伪随机数。此外在背景噪音产生器中也可应用伪随机数。由于伪随机数不是真的随机数,在有些方面它们不能被使用(比如在密码学中使用伪随机数要小心,因为其可计算性是一个可以攻击的地方)。
伪随机数的一个特别大的优点是它们的计算不需要外部的特殊硬件的支持,因此在密码学中伪随机数依然被使用。
真正的随机数必须使用专门的设备(比如使用量子力学的效应)或使用无法预言的现象(比如用户键入的速度等)来产生。