在继续深入探讨之前,我想先破除一个常见的误区:自我复制机器必然会发生变异。我们人类会变异,其他生物会变异,当然,一群微型机器人也可能发生变异,但它们并非注定如此,即便是在漫长的天文时间尺度下也是如此。对于从最简单的生物体(据推测这些生物体最初是自行组装形成的)进化为更复杂的生物体来说,变异是绝对必要的,但如果是为了特定目的制造机器,变异就并非是理想的特征。我可不希望我发射前往仙女座星系的探测器,在历经数百万年的航行后发生变异。如果我把一本书交给一个人,让他一字不差地抄写,我们知道他肯定做不到,他会出一些差错。如果他把抄错的版本再交给另一个人,那个人大概率会把这些错误也抄下来,还会再添一些新的错误,如此反复,最后抄出来的版本会和原版毫无相似之处,这就是变异。
如果这是我复制和保存信息的唯一方式,比如我是一位老国王,想确保抄写员能准确保存我的回忆录,我可以下令让三位不同的抄写员各抄一份。这样一来,即便原版被毁,他们也能逐字对比这三份抄本,要是发现其中一份的某个字和另外两份不同,他们就知道大概率另外两份是正确的,进而修正错误。
当然,也有可能那两位抄写员犯了同一个错误,或者三份抄本的某个地方都不一致,但这两种情况发生的概率都更低。不过,即便概率低,这些情况依然有可能发生,而且如果有上百万行的代码,经过上百万次的复制,就经常会出现两处相同的错误,或者某个地方三份抄本都不一致的情况。
如果增加到四份抄本,这种概率会进一步降低;增加到五份、六份,概率会更低,而且我们可以一直增加抄本数量,直到这种错误发生的概率变得极低,即便在整个宇宙的寿命周期内,这种错误发生一次的可能性都微乎其微。
所以,举例