云南文山三七之家:什么是伪随机数与真随机数?

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 20:12:23

随机数
计算机使用的随机数是一种伪随机数,伪随机数有多种生成算法,甚至还有硬件随机数发生器,但也还是伪随机数。
真随机数符合正态分布且其生成不能重现,真随机数在自然界中几乎不存在。但如果一个随机数能够被重现的机率很小,则认为其为随机数,称为伪随机数。
下面的算法介绍了一种非常简单的伪随机数生成算法,生成0到1之间的随机数。
因为是伪随机数,所以知道了随机数算法和种子,总能够直到随机数序列中任何一个随机数的值,所以一般来说种子的设置都是使用当前时间的毫秒数,保证随机数列的不重复性。
随机数的应用非常广泛,常见的加密解密都要用到,还有随机筛选,计算概率等等。还有一个常见的例子就是计算hash表,利用了同样的种子能得到同样的随机序列这种特性而采用随机函数作为hash函数。
http://blog.clubbenq.com.cn/904569/archive/2005/08/09/13380.aspx

一般情况下,伪随机数已经够用,但是想通过程序获得严格并且严肃的统计结果,一个真正的随机数生成器还是必要的。又比如,如果你是在设计一个大规模的抽奖程序的话,使用伪随机数肯定会被人质疑。

Random.org 这个网站就提供了真正的随机数序列,他通过大气噪音 (Atmospheric Noise) 这种大自然的随机现象来产生。
你可以通过 Http、SOAP、CORBA 等方式在程序中请求特定的随机数列,网站上有详细的接口文档。