让猴子敲出莎士比亚全集
根据无限猴子理论,若让一只或者无数只猴子在打印机前随机按键,当按键时间达到无穷时,几乎必然能够打出任何给定的文字,这其中也包括莎士比亚的著作了。在美国动画《辛普森一家》中,资本家Mr. Burns把Homer带到他的豪宅中,宅邸的一个房屋里一千只猴子正在一千台打印机前打着字,Mr. Burns拿起其中一只猴子打出的字句,发现那写着:It was the best of times, it was blurst of times(原句是狄更斯的It was the best of times, it was worst of times)。虽然猴子写错了狄更斯的名句,但是它好歹写出了一个完整的句子,那么无限只猴子是否真的能打出莎士比亚的著作呢?
在现实中,猴子打出一篇完整的文章的几率几乎是0,这是因为现实中我们很难实现“无限”这个条件。于是软件开发者杰西(Jesse)就想用Amazon EC2云电脑系统、Ubuntu Linux操作系统、Hadoop软件框架来模拟猴子们在打印机前打字的情形。虚拟化的猴子会打出以ASCII形式存在的随机数,这里开发者使用的是Mersenne Twister伪随机数发生器。随后,猴子们的胡言乱语就会被输出,由Bloomfield处理器进行数据库测试。若通过了数据库测试,输出的字符就会与莎士比亚的著作进行字符串对比。若这也通过了,那么恭喜啦,你的虚拟猴子可能写出了莎士比亚著作中的一个词组。
所有莎士比亚的著作都来自免费电子书网站Project Gutenberg,只要有字符匹配,代表相应著作的图片上的相应位置就会变绿,白色的就代表虚拟猴子还未打出匹配的字符。在云电脑上的虚拟猴子的数据每30分钟会更新一次,现在虚拟猴子们已经完成了几乎一半的莎士比亚著作了,当然这里估计指的是打出莎士比亚著作中的出现的一半单词或词组了。
《威尼斯商人》:绿色代表已匹配字符位置,白色代表未匹配字符位置。
《仲夏夜之梦》:绿色代表已匹配字符位置,白色代表未匹配字符位置。
信息及图片来源: jesse-anderson