资源获取提示
下面的内容是本书的简介或者文章试读,如果需要本书的下载链接,请关注微信公众号【虚拟课程产品】或者【xunikechengchanpin】回复关键词4491,就可获取。
本书精华内容
连续37次转动标准的欧洲轮盘赌轮会得到多少不同的数字?理论上讲,这个个数会是1~37之间的任何数,但是那些极端的值会十分罕见,常出现的不同数字的个数是多少?
这个问题第一次呈现在我面前的时候,我没有立即看出有什么简单的方法能解决它。转动赌轮37次会得到3737(一个有59位的十进制数)种可能的结果,而且当你试图罗列,例如有28个不同数字的结果的时候,你将会很快失去热情。一个更加吸引人的方法是进行一个所谓的蒙特卡罗模拟(Monte Carlo simulation)。
在这里,计算机产生的随机数流将会用来模拟37次转动赌轮的结果,之后计算机将会计算有多少不同的数字出现了。这个过程将会重复100万次,结果是24个不同数字出现了203 739次,而23个数字只出现了199 262次。接近的竞争对手是22或者25个数字,都出现了不到160 000次。大数定律告诉我们不同的结果出现的频率将会稳定在它们的各自的概率,而且这些数字的确本质上证实了这件事:有可能的结果就是有24个不同的结果会出现,概率刚刚超过20%。
几天后,我羞愧于当时没能找到一种标准的方法来解决这个问题!我能够计算出对于任意的X,转37次赌轮得到X个不同数字的精确的概率,以证明上面的结论是正确的。但是这不会让应用于这类问题的模拟失去效力——快速而粗糙的结果也会是很有用的。的确,模拟给出的结果与精确计算得到的结果保持一致这个事实,增加了我对计算机随机数生成器按预想运行的信任。
一个更加严肃的蒙特卡罗方法的应用是在聚合物化学(polymer chemistry)中。一个分子是由大量的原子被随机扭曲的长链连接构成的。原子们只能出现在均匀分割的晶格中,并且关键的一点是,没有两个原子能够出现在同一个位置。从分子的一端到另一端的距离可能有多远?
我们可以认为原子被放置在一个醉汉走过的位置,这个醉汉摇摇晃晃地随机经过三维空间中的晶格,但是因为某些原因不能在同一个位置经过两次。没有不能重复经过同一个位置的这个要求,数学家们可以给出很好的解答,但是这个限制条件似乎将问题复杂化到了理论无法解决的地步。然而,哪怕一个不专业的计算机程序员也可以写出一个对这个复杂、曲折的链的合理的模拟,而且在100万、1000万,甚至10亿次重复之后,得到一个所需的精确答案。(回忆棣莫弗的工作,精确度与模拟次数的算数平方根成正比。)
假设你想要估计一片不规则形状叶片的面积。画一个包围了这片叶子的矩形框,然后模拟大量的随机分散到矩形内部的点的位置。你的估计就是用矩形区域的总面积乘以落在叶子边界内部的点的占比。
作为后一个举例介绍的应用,假设保罗(Paul)想要建一个新的加油站。如果他安装4个加油泵,这是小的可行的泵数,就会有至多8辆车的等待区;每个额外的泵减少2个等待区,所以如果他安装了多的8个泵,就没有等待区了。为了计算多少个泵会让他的收益大,他可以进行对安装了4、5、6、7或者8个泵的情况的模拟。
他应该知道潜在的顾客前来加油的比例和一辆车停在泵旁边加油的时间的分布,还有安装费用、运行费用与边际收益。他也应该考虑到如果没有加油泵空闲,或者队伍过长时,一个潜在的顾客直接开过去不来加油的概率。找到或者估计所有这些数字都是相对简单的,而且用计算机进行模拟会比在几个月中以不同的泵数进行实地试验便宜很多。因为他可以每一次都使用相同的随机数种子,他就可以在精确相同的情况下运行所有的模拟,对比不同的估计从而增加收益。
为什么叫“蒙特卡罗”呢?除了随机数和赌场游戏之间的明显的联系,这个名字其实原本用来指代军事领域对这些方法的应用,这其中就包括了早期的核弹的研制[1]。
电码中的错误
摩尔斯电码(Morse code)告诉我们如何只用两种符号,比如说0和1来传输消息。但是其中一些符号也许会被损坏,以至于原本发出的0接收到的时候就变成了1,反之亦然。甚至在较低的错误率下,接收到的消息也会与发送的消息有天壤之别。我们如何应对这种情况?
假设每个传送的符号都有相互独立的较小概率被损坏。我们可以重复发送这些符号,但是稍微一想就会发现,发送00和11而不是0和1根本不能解决问题:如果01或者10到达,确认到底传输的是00还是11就全靠猜测。我们会猜对一半,但是重复发送符号意味着我们可以预见其中会产生两倍的错误,所以两种因素大部分相互抵消了。但是我们考虑一下传输000和111而不是0或者1。
采用“少数服从多数”的原则来进行解码,所有的{000, 100, 010, 001}都被理解为0,其他4种可能的情况被理解为1。如果只有1%的发送的符号被损坏了,那么当000被发送出去,利用二项分布告诉我们有99.97%的概率上述的4种序列被接收到。这意味着错误率从1%降到了0.03%,降低了超过30倍。如果每个数字重复5次,我们可以得到更好的结果,但是消息变长会增大开支。佳选择将会依赖内在的错误率和传输的速度。
评论(0)