必威体育Betway必威体育官网
当前位置:首页 > IT技术

随机数和随机性:伪随机数和真随机数

时间:2019-10-07 10:43:25来源:IT技术作者:seo实验室小编阅读:72次「手机版」
 

伪随机数

随机数可以用于各种目的,例如生成数据加密密钥、模拟和建模复杂现象以及从更大的数据集中选择随机样本。它们在美学上也被使用过,例如在文学和音乐中,当然在游戏和赌博中也很流行。当讨论单数时,随机数是从一组可能的值中抽取出来的,每个值都是等可能的;当讨论随机数序列时,每个被绘制的数字必须在统计上独立于其他数字。

随着计算机的出现,程序员认识到有必要在计算机程序中引入随机性,然而,令人惊讶的是,要让电脑偶然地做一些事情是很困难的。计算机盲目地听从指令,因此是完全可以预测的。使用计算机生成随机数的主要方法有两种:伪随机数生成器(PRNGs)和真随机数生成器(TRNGs)。这两种方法有不同的特点,各有利弊。

Pseudo-Random Number Generators (PRNGs)

正如“伪随机数”这个词所暗示的那样,伪随机数并不是你所期望的那种随机数字,至少在你用来掷骰子或买彩票的时候不是这样,从本质上说,PRNGs是一种算法,它使用数学公式或简单的预计算表来生成随机出现的数字序列。线性同余法是PRNG的一个很好的例子。对伪随机数理论进行了大量的研究,而生成伪随机数的现代算法非常好,以至于这些数字看起来完全是随机的。

如果将计算机生成的随机数与骰子掷出的点数进行比较,就很容易理解PRNGs和TRNGs之间的基本区别。因为PRNGs通过使用数学公式或预先计算的列表生成随机数,所以使用一个对应于某人多次滚动骰子并写下结果。每当你想要一个骰子,你就会得到名单上的下一个。实际上,这些数字看起来是随机的,但实际上它们是预先确定的。TRNGs的工作原理是让一台电脑实际滚动骰子——或者,更常见的是,使用一些比骰子更容易连接到电脑的物理现象。

PRNGs是高效的,这意味着它们可以在短时间内生成许多数字,并且是确定性的,这意味着如果序列中的起始点已知,一个给定的数字序列可以在稍后的日期被复制。PRNGs通常也是周期性的,这意味着序列最终会自己重复。虽然周期性从来都不是一个理想的特征,但现代PRNGs的周期太长,以至于在大多数实际情况下都可以忽略它。

这些特性使prng适用于需要许多数字的应用程序,并且在这些应用程序中,相同的序列可以很容易地重播。这种应用程序的常见示例是模拟和建模应用程序。prng不适用于那些数据不可预测的应用程序,比如数据加密和赌博。

值得注意的是,尽管好的PRNG算法存在,但它们并不总是被使用,而且很容易出现令人讨厌的意外情况。以流行的web编程语言PHP为例。如果你在GNU/linux中使用PHP,你很可能会对你的随机数非常满意,然而,如果您在Microsoft windows中使用PHP,您可能会发现您的随机数并不完全符合2008年可视化分析中的要求。另一个例子可以追溯到2002年,当时一名研究人员报告说,MacOS上的PRNG不够好,无法对病毒感染进行科学模拟。最重要的是,即使PRNG能够满足应用程序的需求,您仍然需要小心使用哪一种。

True Random Number Generators (TRNGs)

与PRNGs相比,TRNGs从物理现象中提取随机性并将其引入计算机。你可以把它想象成一个连接到电脑上的骰子,但通常人们使用的是一种物理现象,它比连接电脑更容易。物理现象可以很简单,比如鼠标移动的细微变化或者按键之间的时间长短。然而,在实践中,您必须小心选择哪个源。

然而,有许多其他的方法可以让你的计算机具有真正的随机性。放射性物质是一种很好的物理现象,辐射源衰变的时间点是完全不可预测的,它们很容易被检测出来并输入计算机,避免了操作系统中的任何缓冲机制。瑞士Fourmilab的HotBits服务是使用这种技术的随机数生成器的一个很好的例子。另一种合适的物理现象是大气噪声,用普通收音机很容易就能接收到。这是RANDOM.ORG所使用的方法。你也可以使用来自办公室或实验室的背景噪音,但你必须注意模式,你电脑里的风扇可能会造成背景噪音,因为风扇是一个旋转装置,它产生的噪音很可能不会像大气噪音那样随机。

只要你小心,可能性是无限的。毫无疑问,视觉上最酷的方法是lavarand发生器,它是由硅图形和熔岩灯的快照来生成真正的随机数。不幸的是,lavarand已经不能使用了,但是它的一个发明者正在LavaRnd网站上进行这项工作(没有熔岩灯)。另一种方法是java EntropyPool,它从各种来源(包括HotBits和random)中收集随机比特。也可以从网页上访问,由EntropyPool自己的web服务器接收。

无论使用哪种物理现象,生成真实随机数的过程都涉及到识别数据中不可预测的微小变化。例如,HotBits在放射性衰变和随机衰变之间的延迟上几乎没有变化。ORG使用了大气噪声振幅的微小变化。

TRNGs的特点与PRNGs有很大的不同。首先,与PRNGs相比,TRNGs通常效率很低,生成数字的时间要长得多。它们也是不确定性的,这意味着一个给定的数字序列不能被复制,尽管同样的序列当然可能偶然发生几次。TRNGs没有周期。

Comparison of PRNGs and TRNGs

下表总结了两种随机数生成器的特点。

Characteristic Pseudo-Random Number Generators True Random Number Generators
Efficiency excellent Poor
DeterMinism Determinstic Nondeterministic
Periodicity Periodic Aperiodic

这些特性使TRNGs适合于PRNGs不适合的应用程序集,例如数据加密、游戏和赌博。下表总结了哪种类型的生成器最适合哪些应用程序:

APPlication Most suitable Generator
Lotteries and Draws TRNG
Games and Gambling TRNG
Random Sampling (e.g., drug screening) TRNG
Simulation and Modelling PRNG
Security (e.g., generation of data encryption keys) TRNG
The Arts Varies

相关阅读

香港:真的不容乐观--阶层固化,年轻人几乎没有翻身机会

许多香港人都说,一睡醒就要交钱给李嘉诚。这句话其实一点都不夸张。香港20个港口中最好的13个都在李嘉诚的手里,另外香港的电讯、电

淘宝客户投诉怎么处理?客服处理投诉的四字真言

客户投诉是一件很让人头痛的事情,因此要想成功地处理客户投诉,先要找到最合适的方式与客户进行交流。针对过去三年处理客诉的经验,总

揭开“电信撤出易信运营”的真相

昨天有一则新闻称,中国电信已撤出易信的日常运营,这真是奇怪的解读。记得在一年前易信刚刚推出时,中国电信就和网易共同宣布,双方为易

什么是“颠覆性”创新的真正内涵?

硅谷的企业家们,总喜欢把“颠覆性”挂在嘴边,不过清楚这一单词明确定义的人却为数不多。日前,在线财富顾问Wealthfront的CEO,资深硅谷

兼职真正赚到钱的人都做到了哪几方面?

任何一个行业都有成功者和失败者。同样对于网络兼职赚钱来讲,总有人轻轻松松就赚到了钱,但有人忙来忙去就是什么都没捞到。就像今

分享到:

栏目导航

推荐阅读

热门阅读