数学之美番外篇:进化论中的概率论
By 刘未鹏(pongba)
C++的罗浮宫(http://blog.youkuaiyun.com/pongba)
李笑来老师在blog上转了一篇宏文,“15 Answers to Creationist Nonsense”;然后余晟同学(顺便推荐余晟同学译的《精通正则表达式》(第3版))把它给译了出来。漂亮的文章加上漂亮的翻译,当然是要拜读的:-)
进化论从其诞生以来受到的非难不计其数。这里提到的这篇便收集了广为神创论者提出以及广为大众误解的一些观点。其中有一点尤其引起了我的兴趣,如下:
8. 严格说起来,我们很难相信复杂如蛋白质的物质能偶然出现,更不用说人或是活细胞了。
偶然性在进化中确实存在(例如,偶然性的突变可以产生新的特征),但是进化并不依赖偶然性来产生新的器官、蛋白质或其他实体。截然相反的是,自然选择,作为进化中已知的最主要机制,却会明确保留“需要的”(能适应的)特性,消除“不需要的”(无法适应的)特性。只要选择的影响力存在,自然选择就能把进化向一个方向推进,在出乎意料的短时间内产生复杂的结构。举个例子,现有由13个字母构成的序列“TOBEORNOTTOBE”,假设有几百万只猴子,每只猴子每秒钟挑一条短语,需要78,800年才能从26^13种可能中选出这样的排列。不过,Glendale College的Richard Hardison在20世纪80年代写过一个程序,它能够在随机产生序列的同时,保证那些已经出现在正确位置上的字母不会变化(这样做倒有点《汉姆雷特》 的味道。译注:这个句子看了大半天才明白,嘿嘿)。这个程序平均只需要336次迭代就能生成上文提到的短语,时间少于90秒。更神奇的是,把莎士比亚的整个剧本重新生成一遍也只需要四天半时间。
关于这个随机枚举特定的13字母的单词的问题有点意思。如果是纯粹随机枚举的话,由于长度为13的单词一共有26^13个不同的(假设所有组合都是有效单词的话),其中只有一个跟目标单词一样,也就是说平均(数学期望)枚举26^13次才能枚举出目标串来。
我们不妨把人类的DNA链当成一个长长的单词。突变是产生随机枚举的动力。那么根据上面的分析,要枚举出我们现在用的DNA,需要的迭代次数将是跟DNA链上的“字母数”(碱基对)成指数关系的。枚举一个13个字母的单词就需要26^13次方了,上亿碱基对,需要多少次迭代?更不要说人类的一代更迭就平均要耗上十来二十年了。
从这个角度来看,作为生命只有短短几十年的我们,似乎的确很难理解像眼睛这么复杂精妙的结构是如何从随机的突变中产生出来的。而这也恰恰是神创论者最经常用来非难进化论的论点之一。那么,这个貌似有力的论点到底正确与否呢?其实,在达尔文同学的《物种起源》中就已经进行了一定程度的驳斥。达尔文同学列举了一系列的比我们人类眼睛简单的眼睛结构,从复杂逐渐到简单,其中最简单的“眼睛”只由一些聚集在一起的感光细胞构成;并且,达尔文同学还雄辩了为什么眼睛的复杂性并非是不可归约(irreducible)的。
然而,达尔文同学毕竟不是专业的理工科出生(在大学里面是学神学的),虽然其实践精神是每个科学家的楷模,虽然在《物种起源》中他运用了一系列的证据和推理,某种程度上论证了随机突变加上自然的选择之手,的确能够进化出如眼睛这么复杂的结构。然而他并没有从数学上加以证明,为什么定向选择能够导致在短得多的时间内产生复杂结构,以及这个时间与纯随机枚举相比到底短到什么程度?
我们仍以那个13个字母的单词为例TOBEORNOTTOBE。如果是纯随机枚举的话,平均需要26^13次方才能枚举出一个来。