1700268116
莎士比亚写这个句子,使用了23个字母,其中穿插了5个空位。我们假定猴子不断地尝试,每次都敲28次键。一旦敲出了正确的句子,实验就结束。要是不正确,它就得继续尝试。我不认得任何猴子,好在我有个女儿,才11个月大,对随意乱搞很有经验,我告诉她我想找猴子做的实验后,她就迫不及待地想扮演那只猴子。她在电脑上打出的实例我放在这页上,读者也许能够欣赏。
1700268117
1700268118
UMMK JK CDZZ F ZD DSDSKSM
1700268119
1700268120
S SS FMCV PU I DDRGLKDXRRDO
1700268121
1700268122
RDTE QDWFDVIOY UDSKZWDCCVYT
1700268123
1700268124
H CHVY NMGNBAYTDFCCVD D
1700268125
1700268126
RCDFYYYRM N DFSKD LD K WDWK
1700268127
1700268128
JJKAUIZMZI UXDKIDISFUMDKUDXI
1700268129
1700268130
由于她另有要务,我只好写一个计算机程序,仿真一个随意敲键的孩子,或猴子,这里也有一些例子可以参考。
1700268131
1700268132
WDLDMNNLT DTJBKWIRZREZLMQCO P
1700268133
1700268134
Y YVMQKZPGJXWVHGLAWFVCHQYOPY
1700268135
1700268136
MWR SWTNUXMLCDLEUBXTQHNZVJQF
1700268137
1700268138
FU OVAODVYKDGXDEKYVMOGGS VT
1700268139
1700268140
HZQZDSFZIHIVPHZPETPWVOVPMZGF
1700268141
1700268142
GEWRGZRPBCTPGQMCKHFDBGW ZCCF
1700268143
1700268144
这个程序就这样不断制造产品—将随机敲到的28个键在银幕上显示出来(或打印)。要花多少时间才能敲出“我觉得像一只黄鼠狼”呢?想想所有可能敲出来的字母串共有多少—每串是任意按28个键的结果。我们必须做的计算与前面做过的血红蛋白分子一样,结果也是同样大的数字。敲第一个键时,有27种选择(不区分空位键与字母键,26个字母键加1个空位键),敲到正确字母的概率是1/27。头两个键都碰巧正确的机会是1/27乘以1/27,等于1/729,因为第二个键敲对的概率,与第一个键相同,可是头两个键都要正确的话,得在第一个键敲对了之后才算第二个键。这个句子全部28个字母都正确的概率,因此是1/27的28次方,就是1/27自乘28次。结果是一个非常小的数字,难以想象的小,以分数表现的话,分子是1,分母是1后面跟着40个0。说得委婉些,这个句子要花很久才敲得出来,什么《莎士比亚全集》就算了吧。
1700268145
1700268146
随机变异中的“单步骤选择”已经谈得够多了,让我们回头谈谈“累积选择”。“累积选择”会更有效率吗?效率能提升多少?答案是:有效率多了,即使我们开始觉得这是一个很有效率的过程,也可能低估它的效能。但是只要你仔细再想想,就会发现惊人的效率几乎是必然的结果。我们要再度使用电脑替代猴子,但是我们会对程序做一个关键的修改。一开始这个程序会随机按28次键,例如:
1700268147
1700268148
WDLMNLT DTJBKWIRZREZLMQCOP
1700268149
1700268150
然后从这一个随机序列“繁殖”下去。电脑不断复制这个字母序列,但是复制过程容许某种程度的随机变异—“突变”。电脑会检查这些复制出来“子序列”,从其中选出最接近标的序列Methinks it is like a weasel(我觉得像一只黄鼠狼)的一个,不论相似的程度多么薄弱。第一个这样选出来的“子序列”与标的序列实在不怎么像:
1700268151
1700268152
WDLMNLT DTJBSWIRZREZLMQCO P
1700268153
1700268154
但是这个程序会重复下去,电脑开始复制这个赢家,并容许同样程度的随机变异,并选出一个新的赢家。如此这般,10“代”、20“代”之后的赢家,可能仍然必须凭信心才能看出它们与标的“很像”。但是,到了30“代”,相像就不再是想象的产物了。到了40“代”,银幕上出现的字母序列,只有一个字母是错的。正确的结果在第43“代”产生。
1700268155
1700268156
第二次重跑这个计算机程序,正确的结果在第64“代”产生。第三次重跑,第41“代”就产生正确的结果了。
1700268157
1700268158
电脑实际花了多少时间繁衍出符合标的的那一代,并不重要。如果你真的想知道,电脑第一次完成整个程序,是在我出去吃午餐的时候。大约半个小时。(计算机玩家也许会认为这实在慢得蹊跷。原因是我的计算机程序是用BASIC写的,这种语言在计算机程序语言家族中相当“幼齿”。我改用PASCAL语言重写这个程序后,11秒就完成了一回合。)电脑做这种事比猴子快一些,但是速度的差异其实不大。真正重要的时间差异,是“累积选择”需要的时间与“单步骤选择”需要的时间。同一部电脑,以同样的速度,执行“单步骤选择”程序的话,要花的时间是:1后面加30个0,单位是年。学者估计的宇宙年龄大约是100亿年(1后面加10个0)。我们不必细究1后面加30个0等于宇宙年龄的多少倍,比较适当的说法是:与猴子或电脑要花的巨量时间比起来,宇宙的年龄实在微不足道—在我们这种粗略的计算方式必须容忍的误差范围之内。但是同一部以随机方式按键的电脑,只要加入“累积选择”的条件,达成同样的任务所需的时间,我们人类以常识便可以了解,在11秒与吃一顿午餐所费的时间之间。
1700268159
1700268160
现在我们可以看出:“累积选择”(这个过程中,每一次改进,不论多么微小,都是未来的基础)与“单步骤选择”(每一次“尝试”都是新鲜的,与过去的“经验”无关)的差别可大了。要是演化进步必须依赖“单步骤选择”,绝对一事无成,搞不出什么名堂。不过,要是自然的盲目力量能够以某种方式设定“累积选择”的必要条件,就可能造成奇异、瑰丽的结果。事实上那正是我们这个行星上发生的事,我们人类即使算不上最奇异、最让人惊讶的结果,也是最近的结果。
1700268161
1700268162
让人惊讶的反而是:类似前面所举“血红蛋白数字”的例子,却一直被用来反驳达尔文的理论。那些这么做的人,往往在本行中是专家,像是天文学或什么的,他们似乎真诚地相信达尔文理论纯以概率(巧劲儿)—“单步骤选择”—解释生物的组织。“达尔文式的演化是‘随机的’”这个信念,不只是不真实而已。它根本与真相相反。在达尔文演化论中,“巧劲儿”只扮演次要的角色,最重要的角色是“累积选择”,它根本就是“非”随机的。
1700268163
1700268164
天上的云无法进入“累积选择”过程。某种特定形态的云不能通过某种机制生产与自身相似的子女。如果有这种机制,如果云像黄鼠狼或骆驼一样,能够繁衍模样大致相似的世系,“累积选择”就有机会发生。当然,有时云朵的确会分裂、形成“子女”,但那还不足以让“累积选择”发生。必要条件是任何一朵云的“子女”应该与“父母”相似,不像“族群”中的其他“老爹”。这个差别极为紧要,最近有些哲学家对自然选择理论发生了兴趣,可是他们有些人很明显地误解了这一点。还有一个必要条件是:任何一朵云生存、繁衍复本的概率,与它的形态有关。也许在某个遥远的星系中,这些条件都发生了,而且经过了数以百万年计的时光,结果是一种虚无缥缈的生命形式,只是寿命短暂。这个题材也许可以写成一部很棒的科幻小说,题目我都想好了,就叫《白云记》吧;但是就我们所想讨论的问题来说,电脑模型是比较容易掌握的,像猴子/莎士比亚模型一样。
1700268165
[
上一页 ]
[ :1.700268116e+09 ]
[
下一页 ]