真正随机的随机数

真正随机的随机数


发布日期: 2016-10-24 更新日期: 2016-11-09 编辑:xuzhiping 浏览次数: 3861

标签:

摘要: 在足球场上,为了决定由哪队开球,裁判通常会丢个硬币,看看是字朝上还是花朝上。在赌场的扑克牌桌上,由庄家掷骰子,待骰子静止后,再查看最上面的点数。彩票开奖时,气流吹起一堆有编号的小球,这些球飘浮滚动,时间一到,机器吐出一颗球,然后记录它的号码。 我们可以说,这些...

在足球场上,为了决定由哪队开球,裁判通常会丢个硬币,看看是字朝上还是花朝上。在赌场的扑克牌桌上,由庄家掷骰子,待骰子静止后,再查看最上面的点数。彩票开奖时,气流吹起一堆有编号的小球,这些球飘浮滚动,时间一到,机器吐出一颗球,然后记录它的号码。

我们可以说,这些例子最后的结果纯粹由概率来决定,而人们永远无法预测硬币朝上的是哪一面、骰子的点数,或是小球上的号码。

个性比较吹毛求疵的人大概会指出,骰子某一边或铜板某一面较重,而微小的重量差异就可能扭曲结果。但是先不考虑这个微小瑕疵,上述物体的确能产生可接受的随机数列,因此对硬来说是0与1、对骰子而言是1至6、对彩票小球而言则是1至45。

随机数的重要性不仅存在于游戏或体育运动中,这些数在其他领域也是不可或缺的行业工具。以密码学为例,随机数(实际上是随机选出的素数)可以用来加密数据;在工程学或经济学中,随机数能够用来模拟,除了用概率论来计算都市的运输流量,也可以改用模拟来协助测试交通状况。我们还可以写一个计算机程序,当随机选择的数介于16与32之间时绿灯亮,若随机选出的数为奇数时则卡车从左方驶来等,然后执行这项模拟程序数千次,并且由操作人员记录其观察结果,包括是否发生车祸、有没有塞车。

因为随机数常让人联想到轮盘赌,因此这种方法也被称为蒙特卡罗模拟法。即使是最严谨的科学——数学,也能从蒙特卡罗模拟法中受益,例如形状复杂物体的体积就可以用蒙特卡罗模拟法来确定。

然而,用上述方法产生随机数时会有个问题,类似抛掷铜板、 骰子、小球及其他物体到空中的方法效率很低,若能一秒钟产生一个随机数就好了。执行高质量的模拟可能需要数百万、有时甚至是数十亿个随机数,这时用计算机来产生随机数是十分合理的作法,毕竟计算机可以在几分之一秒内产生大量数字。但还是有个意想不到的障碍,计算机的最大优势之一是能够不加思索地一再重复执行写好的指令,但这也成为产生随机数串时具有毁灭性的障碍。从任一数字开始,计算机总是依据前一个数字来计算下一个数字,这表示计算机产生的随机数列中会出现某种模式,此时理论上我们应该可以预测出每个数字。用来产生“随机”数的公式可能非常复杂,形成数列的模式也可能很复杂,但终究有个模式。计算机产生的随机数理所当然地被称为伪随机数,即使它们可以通过一套严格的随机性测试,仍然不是真正的随机数。

计算机创造伪随机数的技巧是,必须使用一个随机的起始值,这个数称为种子。一旦选出种子后,程序就以预先确定的但对使用者而言深奥难解的方式开始执行。它可能依下列顺序计算:“取前一个数字的立方根,将结果除以163,然后取出小数点后第7、12及20位的数字”,得到这个三位的伪随机数后,就可以计算后续的伪随机数,并依此类推。当然,因为这个例子只用到3个数字,因此只能产生不满1000个伪随机数,但只要计算机遇到一个之前用过的三位数,之后的程序就会产生恒同的数列,不可避免地产生了循环。增加伪随机数的位数至15位、20位或更多,可以延后循环发生的时间,但即使最长的伪随机数列,最后也会以循环结束。

无论伪随机数的大小如何,程序开始的信号一定要由计算机外产生,否则流程会总是从同一个种子开始,然后每次都产生一模一样的数列。许多事物都可以作为起始信号,例如计算机操作人员敲下Enter键的时间,或是操作者移动计算机鼠标时无法察觉到(故为随机)的手部移动等。

无论整个流程多么小心,所有由计算机产生的随机数列归根结底都属于“伪随机”。但是科学家仍然认为,他们得到的结果令人满意,随机数产生器的使用也没有造成太多问题。1992年,3位物理学家发现,他们的模拟结果产生错误的预测,导致随后的结论全盘皆错,不禁大惊失色。后面还有更糟的,2003年,两位德国物理学家鲍克及默滕斯证明,因为0在代数中的角色特殊,使得二进位随机数产生器产生的0太多、1太少。

随机数专门机构看见了机遇,他们决定不仅是起始值,其他全部数字都要由计算机外部产生。形成的随机数列被放在因特网上,让有兴趣的人随意利用。这些随机数的来源是自然现象,如晶体管的热爆声、放射性物质的衰变、熔岩灯的漂动、大气中的背景噪声,而这些都是完全、不可否认、无可置疑的随机现象,可以用盖革计数器、温度计或扩音器加以计量及记录。于是货真价实的随机数诞生了,不再是“伪随机”版本。

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org