猴子可以通过随意敲击键盘来重现莎士比亚的作品吗



我正在考虑编写一个程序,该程序将随机生成一个由N个字符组成的字符串,其中N是X书中的字符数,包括空格、适当的标点符号和大写字母。在每个随机字符生成过程中,我将检查输出是否与书籍X的实际文本匹配。

假设使用英语字母表,并在生成器中编码一些合理的语法规则,那么编写一个程序随机生成X书的文本在计算上可行吗?

可以实现什么样的优化来使问题更容易解决?

使用现代四核(i5)台式电脑需要什么样的运行时间。用一台超级计算机怎么样?

粗略地说,一本标准格式的精装书的每一页都有大约300-350个单词,每个单词是五个字符加一个空格。所以一个典型的书页有1500到1800个字符(不算在内空格)。如果我们将250页视为标准图书长度,那么如果不算上空间;500000如果你这样做。来源

假设X书有500000个字符,我们的字母表是30号。一个人能做得比30^500000~(4.2×10^738560)更好吗?

如果你正在寻找一个疯狂到没有人尝试过的想法,你必须更加努力:-)-请参阅http://www.bbc.co.uk/news/technology-15060310,,

数百万只虚拟猴子即将通过在虚拟打字机上随意捣碎按键来重新创作莎士比亚的全集。

他们的总体表现表明,重新创建已完成99.990%。

完成的第一部作品是诗歌《情人的控诉》。

该项目由美国程序员Jesse Anderson建立,通过家用电脑协调坐在亚马逊EC2云计算系统上的虚拟猴子

(+更多信息,包括与真实猴子的实践经验)

你可以将其建模为单词的排列,而不是字符的排列-大多数书几乎不使用任何新颖的单词(除了像刘易斯·卡罗尔的《透过镜子》这样的书-你可能需要将诗歌《Jabberwocky》建模为字符的排列)。此外,字典中的大多数单词都没有在文学中使用,所以你可能会把自己限制在一本字典中,比如说,10000个最常用的单词,但仍然占大多数书的篇幅。

使用语法来限制单词的顺序更为棘手,因为很多书都使用非法的单词顺序(尤其是在对话中)。也许你可以对没有引号的句子(意思是非对话)使用标准的英语语法分析器来过滤非法的单词顺序,然后对有引号的句子使用直词排列。显然,这对《尤利西斯》这样一本语法定律被抛到九霄云外的书来说是行不通的。

我会使用遗传算法。

最新更新