第一推动丛书·综合系列(套装共8册)
上QQ阅读APP看书,第一时间看更新

指令如何改变我们对事物可能性的认识?

一旦认识到指令在复杂事物形成过程中的核心作用,就能从构造事物所需的指令本身的可能性——或者说不可能性——的角度来认识事物的可能性。复杂的指令使得复杂的物理事物成为可能。通过执行指令构造出的对象的特殊性直接来自指令的特殊性。要认识到长指令有多不可能,我们必须进入大数和小数的王国。

人类对数的使用源自计数。一些原始部落的计数没有超过2“没有词汇的数字认知:来自亚马逊的证据。”彼得·戈登(Peter Gordon)2004年10月15日发表在《科学》杂志的文章提供了清晰的证据指出有些语言的计数不能超出2。。因此我们可以推断计数的能力不是天生的。这种文化中的人无法一致地用一碗米交换一打橙子。他们能大致估计12个橙子的分量,但如果不大费周章地与另外12个橙子比对,就很容易弄错。计数让商业成为可能,会计数的商人能轻易骗过不会计数的商人。在计数发明后不久。有些人意识到也能对事物的部分进行计数。如果将苹果切成4块,对每一块苹果也能计数。

如果要计的数超出了我们的手指和脚趾的数量,一个简单的方法是给每个数起个名字。古埃及人对从1到1000之间的每个数都有专门的名字。如果要处理的事物的数量不是很大,并且也不用对数进行操作,这样的系统也能应对,但如果使用某种重复性的系统,则可以简化数的处理。例如,在语言中我们用一百二十三这样的组合短语而不是一个专门的词来描述这个数。但用组合词也很麻烦,如果将词语换成符号又可以节省很多空间。将十六万二千六百七十四写成162674显然更加便捷。更重要的是,基于符号的计数便于操作数字。十进制系统对算术非常方便。如果你认为在所有数字系统中算术都一样方便,试一下用罗马数字LIV除以XVI有很多很好的网站详细介绍了如何用罗马数字进行初等算术。搜索“罗马数字算术”。。算术的方便解释了为什么十进制系统现在在世界上被如此广泛地使用。

十进制系统另一个很实用的特性是能够表示我们日常不会遇到的很大或很小的数。例如,在我写下这句话的时候,地球上的人口数量估计为七十亿七千二百五十万七千三百零二,或者7072507302(而且以每秒3人的速度增长)。到中部夏令时2012年10月13日10:54为止,美国政府的总赤字是16168864374347美元。只需适度练习,任何人都能读写这样的数字,尽管它们所表示的数远远超出了我们的实际经验。想一想,如果你在75年里每天遇到20个人,你一生大约会遇到五十万(500000)个人。如果你每秒数1美元,十小时你能数36000美元(假设你不会数丢)。一年可以数到13140000美元,一辈子大约10亿美元。数16万亿美元要花16000辈子时间。以每天20人的速度,要遇到世界上所有人,要花13000辈子时间——还要假设在计数期间没有人出生也没有人死亡。这些数字与我们可能遇到的另外一些数字比起来又微不足道。表5.1列举了一些例子。

表5.1 一些很大和很小的数

标准十进制系统也有其局限性。非常大(和非常小)的数的读写很麻烦。一般使用科学记数法来简记。根据科学记数法,1000000记为1×106(或者直接记为106),3400000记为3.4×106,0.0002记为2×10-4。上标6表示小数点左边和1的右边有6个0(或6位);上标-4表示小数点右边有4个0,然后跟着非0数。使用这种记数法很容易写出数字比如6×105000,不然就得在6后面写两页0。表5.1采用了科学记数法。

表中第1项和最后一项来自物理中的气体理论。表中第2项受这本书启发,这本书大约由500000个字符组成,使用了大约40种不同的字符(26个英文字母,空格,以及各种符号,例如/;=)。用40种符号的字母表排列500000个字符有40500000种方法,也就是1×10800000。这就是用40种符号的字母表能够写出的500000个字符的书的数量。当然,其中绝大部分都是乱码;只有一小部分对懂这门语言的人有意义。这也说明了一本睿智的书有多特别丹尼尔·丹尼特在《达尔文的危险思想》中借鉴了豪尔赫·路易斯·博尔赫斯(Jorge Luis Borges)在《迷宫》(Labyrinths,1962)中想象的所有可能书籍的图书馆,“巴别塔图书馆。”丹尼特想象了巴别塔图书馆的子集,称为孟德尔图书馆,图书馆中有所有可能的DNA序列。

有了科学计数法,写很大和很小的数变得很容易,这是优点同时也是缺点。在科学中太大或太小的数都具有误导性。在量子力学中,无法以无限的精度同时确定一个粒子的位置和动量。如果限定一个极小的空间,在其中所发生的事情的不确定性就变得极大。因此,在很小的尺度上,所有已知的物理定律都不成立了,科学认识在这种尺度上不再成立。量子力学失效的尺度大约在1×10-35米(普朗克长度)。传递信息最快的速度是光速(3×108米/秒),光通过1×10-35米至少需要1×10-44秒。因此从科学的角度来说,谈论短于1×10-44秒的时间是没有意义的。小学生也可以轻松写出1×10-1000秒,但有什么意义呢?

极大的距离和极长的时间也有类似问题。最新的天文学证据和理论模型表明,已知宇宙的年龄大约为137亿年。大爆炸标志着时间的开端,因此在4×1017秒之前的时间是没有定义的。这之前的时间的意义是什么?同样,由于光以有限速度传播,因此天文学家无法看到发出的光到达地球的时间长于137亿年的地方。人们可以谈论更远的距离,但涉及无法探测到的事物时必须很谨慎。

再回到概率的问题,抛一枚匀称硬币得到正面的机会是1/2。如果扔一个普通的6面骰子,得到2的机会是1/6。大部分纸牌游戏都是基于概率,从充分洗匀的52张牌中发5张牌,拿到AKQJ 10同花顺的机会是1/649740(科学记数法概率为1.539×10-6)。除非你经常玩牌,否则你在普通牌局中可能从没见过皇家同花顺。你在地上被掉下来的飞机砸死的概率是百万分之四(4×10-6),被(小)陨石砸死的概率大致为100亿分之一(1×10-10)。可想而知,地球人口70亿(7×109),已经有几百人被飞机砸死了,但只有一个可信的报告有一个人被陨石砸死。虽然存在一定的风险,但很少有人会担心晚上躺床上会被飞机或陨石砸到。这些事情发生到特定的人身上的概率太低了,无需去担心——虽然它们确实会发生Small probability reference:Risk to groundlings of death due to airplane accidents:a risk communication tool. Bernard Goldstein, et al.,Risk Analysis 12(1991):339—341。数据来自美国,1975-1985。

这些概率虽然很小,还是可以理解。然而,一旦考虑顺序随机事件,如果事件数量很大,出现特定序列的概率就会小到难以想象。一旦概率小到一定程度,将其视为与0不同就会有误导性。概率小到一定程度就意味着相应事件在随机的过程中从没发生过,也永远不会发生,虽然计算出来的概率要比0大一点点。

字母序列可以简单说明这种难以想象的小概率。再来看看连续地抛硬币。每次的结果要么正面要么反面(概率各0.5)。我在桌上抛了50次,结果为H·H·T·T·H·T·H·H·T·T·T·H·T·H·T·H·T·H·H·T·H·H·T·H·T·T·H·T·H·H·T·T·H·H·H·H·T·H·H·T·T·T·H·T·H·T·H·H·H·T。

由H和T组成的50个字母的序列有1.1×1015(250)种可能。因此这个特定序列的概率大致为1×10-15。如果地球上每个人每秒抛一

次硬币并记录结果,上面这个序列在一天里大约会再现一次。如果我记录100次而不是50次,那么全人类什么也不做只抛硬币,大约5×1012年(当前宇宙年龄的400倍)才会再现一个特定的序列!抛1000次产生的序列的概率为1×10-300,要抛5×10282年才会再现。这样的概率与0没有区别。如果地球上所有计算机不干别的只模拟抛硬币,宇宙年龄的千万亿倍时间也无法产生某个特定的序列。换句话说,如果你写下一个1000个H和T组成的平常序列,你可以绝对肯定用随机的方法永远也无法再现这个特定的序列。这个认识揭示了概率和存在性之间一个明显但仍然很重要的关系。如果设想的对象的概率低到一定程度,它就永远无法仅仅因为随机成为物理存在。但一旦某个低概率对象存在了,我们就能生成其拷贝,而无需受制于概率问题。显然,基于随机组装假设的概率计算可能很有误导性。

现代社会不断创造和使用远长于1000个符号的序列。大部分用于制造有用事物的指令都是长符号序列;用书和光碟存储。所有这些序列都很特别。通过概率讨论我们可以绝对肯定,随机排列符号无法产生任何有意义的长指令。那长指令是如何产生的呢?说某个人创造了它们并没有解决问题,因为人如何做到的机制还是不清楚。

我们已经看到了一个可能的答案。在预先不知道所期望的序列的情况下,复杂计算引擎有能力创造很长的具有目的性的符号序列(指令就属于这种目的性序列)。事实上,复杂引擎是唯一所知的能高效做这种事情的机制。这意味着,如果我们想理解人类如何构思各种事物和创造各种技术,如果我们想真正理解复杂事物是如何产生的,我们就不能无视这一点。

下一章将详细探讨一个特定的用计算机实现的复杂引擎是如何解决简单的“最多1”问题。这个任务是在没有将答案编码为输入的条件下创造全1的字符串。你能很容易做到这一点,因为你“知道”0和1的差别。要让计算机“知道”这个差别从而做到这一点就有点难。一个办法是编程让计算机随机生成0和1字符串,直到出现一个字符串的所有位加起来等于这个字符串的长度。这个方法的问题是要生成1千个1组成的字符串,需要生成大约10300个不同的字符串。在一个远远少于10100年只有1080个原子(限制了运算这个问题的计算机的数量)的宇宙中,这件事情不可能做到。令人吃惊的是,借助于复杂引擎,我的电脑不到1分钟就能解决这个问题,而且字符串越长这个算法带来的效率提升越高!根据我们的日常经验,远远长于1000比特的指令很常见。要通过随机方法生成是不可想象的,仅有的两种可能的科学方案是:①宇宙被预先设定为会产生在过去、现在和未来要用到的所有指令;或者②它们通过一种高效的计算策略产生。在预先不知道期望的信息结构的条件下,我们唯一知道的能组装大规模目的性信息的就是复杂引擎。说某人“构想”了一长串指令只会混淆问题。“构想”不是一个机制,无法告诉我们在大脑里进行的是什么计算。

这一节我们仔细探讨了用随机的方式创造事物的可能性,从而明确了一点,复杂事物、不可能通过随机创造产生。这个原理虽然很浅显,但是很重要,部分是因为它可以用来反推。如果一个对象的随机组装是不可能的,那我们就知道它的产生不是随机的。这就是佩利的论点,但他论证的时候还不知道复杂引擎,上帝是他唯一的选项。

从哲学上来说,非随机组装意味着什么呢?一方面看,非随机地创造某物意味着先前具备的知识在其创造中起了作用。当我们写信或写文章时,我们之所以能够构造具有特定意义的特定字符序列,是因为我们对我们所写的东西已经有所认识。如果我们一无所知,我们就一个字也写不出来。黑猩猩可以被教会使用键盘,但敲击出的字符串对人类不会有任何意义。使用同样的碱基,科学家永远也无法通过在试管中合成随机的DNA序列并将其表达成细胞来创造新的生命形式,除非他们预先知道要合成什么序列。随机序列无法做到。

从另一方面看,非随机创造又意味着对可能的产物施加了约束。约束刻画了物理世界。以栅栏为例。精心建造的围栏的立板都是垂直的,间隔均匀,顶部离地都是一样高。为什么许多围栏都是这样?用同样的板子完全可以设计出许多种类的围栏,而且大部分都很无序。之所以如此有序是因为建造者施加了约束。每块板子的钉立位置都要符合特定的标准。化学和物理定律组成的约束就如同围栏建造者的规则,只是化学和物理定律无处不在。选择也是约束,反复的选择建立了非随机性。指令是特殊类型的约束,指令越长(越复杂),能生成的产物就越复杂。因此,能够组装指令的复杂引擎为复杂事物的存在提供了一条途径,它通过一种系统的、非随机的方法组装必要的信息来实现这一点。没有这台引擎,我们所见的和所用的大部分事物都毫无机会存在。有了它,神奇的事物就变得平常。