随机数是专门的随机试验的结果。在统计学的不同
技术中需要使用随机数,比如在从
统计总体中抽取有
代表性的
样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。
在
统计学的不同技术中需要使用随机数,比如在从
统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。
产生随机数有多种不同的方法。这些方法被称为
随机数生成器。随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无关系。
随机数在密码学中非常重要,保密通信中大量运用的
会话密钥的生成即需要真随机数的参与。如果一个随机数生成算法是有缺陷的,那么会话密钥可以直接被推算出来。若果真发生这种事故,那么任何加密算法都失去了意义。
密码学中大量利用伪随机数生成器的应用还有
流密码。流密码的著名例子是
RC4。流密码的原理是利用一个密码学安全的伪随机数生成器根据密钥产生一串密码学安全的伪随机比特列,再将消息与上述随机比特列按位
异或运算。
真正的随机数是使用
物理现象产生的:比如掷钱币、
骰子、转轮、使用
电子元件的噪音、
核裂变等等,这样的
随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。
在实际应用中往往使用
伪随机数就足够了。这些
数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的
统计特征。这样的发生器叫做
伪随机数发生器。
C语言、C++、C#、Java、Matlab、PHP、C51等程序语言和软件中都有对应的随机数
生成函数。