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

标签 algorithm complexity-theory time-complexity feasibility

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

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

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

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

In rough terms, each page of a standard-format hardcover book has about 300-350 words, and each word is five characters plus a space. So a typical book page has, say 1,500 to 1,800 characters (not counting spaces.). If we consider 250 pages as standard book length, then you're talking about maybe 400,000 characters if you don't count the spaces; 500,000 if you do. source

假设 X 书有 500,000 个字符,而我们的字母表大小为 30。有人能比 30^500,000 ~(4.2 × 10^738560) 做得更好吗?

最佳答案

如果您正在寻找一个如此疯狂以至于没有人尝试过的想法,您将不得不更加努力:-) - 参见http://www.bbc.co.uk/news/technology-15060310 ,,

几百万只虚拟猴子通过在虚拟打字机上随机敲打按键,即将重现莎士比亚全集。

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

第一部完成的单曲是《情人怨》。

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

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

关于algorithm - 猴子可以通过随机敲击键盘来重现莎士比亚的作品吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17385339/

相关文章:

algorithm - MySQL 的线性哈希算法的正确名称是什么?

java - 我怎么会误解这些 Java 函数的 Big-O?

algorithm - 大 O 还是大 theta?

algorithm - 稠密图中有多少条边

algorithm - P 与 NP 澄清

python - 使用 Python 和哈希表查找链表末尾的第 n 个节点

algorithm - 具有循环依赖的 DFS

php - 在图像上找到最喜欢的区域

冒泡排序的算法分析

algorithm - 近似最近邻时间复杂度