作者:@字符序列
死神来的时候,猴子正在敲打字机。
“等我打完这本书,你再来带我走,好吗?”猴子指了指桌边的《哈姆雷特》。
打完一本书,又不是写一本新的,倒也不算个多难的愿望。
“好。” 死神从来没见过这么有趣的猴子,他说,“等你写完,我就带你走。”他还许诺,在那以前,猴子与桌上的一切都不会消亡,纸也不会用尽。
第二次来时,地上已经积了厚厚一层纸。死神随手拾起一张,又拾起一张,才发现上面没有一句读得通的话。
他问猴子认不认得字,猴子摇头。他又问,那它凭什么知道该敲哪一个键。猴子说,每一个都是随便敲的……
死神愣了一会儿,伸手翻开《哈姆雷特》:“你不认字,但是你要打出来哈姆雷特?从第一个字,到最后一个标点,都得一样?”
猴子点了点头,继续敲字。“咔哒、咔哒……”
它不会记住刚才按过什么,下一次敲击也不会比上一次更聪明。
死神把纸放下,离开了,是要比他料想的慢一些。
他见过太多等不到天亮的生命。他知道,等待总能使一个活物低下头。
起初,他每隔几年便来看看。街上仍有叫卖声,有人迎亲,有人送葬。一个在门口玩耍的孩子长大了,老了,有一天也跟他走了。后来,城头换了旗帜,宫殿换了主人;新君王把旧君王的名字从石碑上凿去,却没能把自己的名字留得更久。死神每次经过那扇门,总能听见猴子打字的敲击声。
一千年过去,城塌了。一百万年过去,森林盖住废墟,树根穿过宫殿的地基。死神有时隔着几百年的风雪回来,有时从一整片海洋里走回来。冰川进退,大陆漂移,山脉沉入海底,又有新的山脉隆起。每次找到那张桌子,猴子都还坐在那里,原书也依旧摊着。新打出来的纸越积越厚,没有一本《哈姆雷特》。
后来,海洋干涸,太阳膨胀起来,吞没了曾经容纳那座城的土地。屋顶、门窗和最后一点尘土都不在了。受许诺庇护的桌子悬在虚空里,猴子坐在桌前,像仍坐在一个寻常的下午。
死神继续往返。恒星耗尽燃料,一颗接一颗地熄灭,黑洞在黑暗中旋转、靠近,合并时的震颤掠过早已没有星光的星系。他见过无数生命走到尽头,看着这些,也只像看着一场更大的散席。直到连那些吞下过星辰的黑洞,都在漫长的岁月中耗尽了自己。
那本书仍然没有出现。
死神最后一次回来,坐在了猴子对面。他已经没有别的地方要去,也没有别的门需要叩响。再没有日升月落替他们标记岁月,四周的黑暗没有远近,只有白纸不断从机器里送出来,轻轻碰到他的膝盖。
他不再问还要多久。有时猴子停下来揉一揉手腕,他便看着它;等下一声敲击响起,才重新坐稳。猴子偶尔问,现在是什么时候了,他总说,还早。后来他也不再去想,这句话究竟是什么意思。
不知道又过了多久,死神拾起一张落在脚边的纸,刚要放下,手却停住了。那是《哈姆雷特》的第一行。第二行也对。他把原书移到面前,一行一行往下看,整整一页,没有一个错误。
他坐直了。猴子仍在随意敲击,既没有变得更聪明,也没有放慢速度,那些字符却接连排成了书中原有的次序。第二页,第三页,更多的纸从机器里送出来。死神起初看得很快,后来越来越慢,翻页时,指尖在纸边停留得越来越久。
他想起了自己当初说过的话:等你写完,我就带你走。
他开始盼望一个错字。少一个字也行,多一个字也行,哪怕一个无关紧要的标点。可纸上的句子仍旧与原书重合,一页接着一页,直到最后一页、最后一句。猴子敲完最后一个字,抬起了手。
只差末尾的句号。
一声轻响,猴子的手落了下去。“咔哒”
是一个问号。
死神把两张纸并在一起,看了许久。他从头核对,翻到最后,又核对了一遍。没有别的错误,只有这一个符号。
这只不识字的猴子差一点就打出来了《哈姆雷特》。
猴子已经推开那张纸,开始敲下一行,全不知道自己刚刚写出了什么,也不知道对面的那位为什么迟迟不肯放下那一页。
死神往后坐了坐,听着重新响起的敲击声,过了好一会儿,才把那口气轻轻吐出来。猴子没有抬头。那些字符又变得杂乱无章,彼此毫无关系,和最初那个下午一样。
“还早吗?”它问。
死神把那张只错了一个字符的纸抚平,收起来。“还早。”他说,“慢慢写。”
后记:随机打出《哈姆雷特》,需要多久?
假设一只猴子每秒随机敲一个字符,键盘有100种可能输出,那么,随机打出完整《哈姆雷特》的平均等待时间,可以达到:
把这个年数完整写出来,需要约35万位数字。
这个结果取决于文本版本和打字规则。这里选取 Project Gutenberg 的英文版《哈姆雷特》,去掉附加说明,将换行和连续空格统一成一个空格,保留书名、目录、人物名和舞台说明,统计得到175,986个字符,包括字母、标点和空格。
再规定:键盘的100种输出包含全文所需的所有字符,每次敲击相互独立,各种字符出现的概率相同。猴子不停地敲,只要输出中有一段连续字符与全文完全一致,就算成功;不能把零散打对的句子拼起来。
从某个指定位置开始,接下来的175,986个字符恰好与全文一致的概率为:
按连续敲击、连续检查全文匹配的规则计算,平均等待时间约为:
分母是一年的秒数,按一年365.25天计算。
把几个时间尺度放在一起,会更容易理解这场等待:
| 时间尺度 | 大约多少年 |
|---|---|
| 宇宙目前的年龄 | |
| 极大黑洞的理论蒸发时间 | |
| 这只猴子的平均等待时间 |
宇宙年龄参考 NASA 的介绍;黑洞的时间尺度来自考虑霍金蒸发的宇宙长期演化研究,具体取决于黑洞质量和理论假设。
因此,在这个理想化模型中,恒星熄灭、黑洞消散之后,那本书仍然没有出现,是十分合理的。即使持续敲到 年,出现完整全文的概率仍然极其接近零。
不过,这个数字是平均等待时间,没有一个保证成功的有限期限。猴子可能第一次就敲对,也可能比平均值等得更久。无限猴子定理所说的是:在上述条件下,允许无限次尝试,任何指定的有限文本最终出现的概率为1。
对于故事中“只差末尾的句号”那一刻,还有一个细节:即使前面已经全部正确,下一键仍然只有1%的概率是句号,99%的概率是别的字符。此前等待过的漫长岁月,都不会改变这一次敲击的概率。
世界由字符组成,而意义来自其排列。- 字符序列
引用和转载请注明作者及原文链接。