【发布时间】:2015-12-04 22:22:45
【问题描述】:
这是用户@David 对巴别图书馆的描述
巴别图书馆网站 (libraryofbabel.info) 包含书籍 带有伪随机生成的文本,每个有 410 页,位于 图书馆的“地板”、“墙壁”和“架子”。任何小于的序列 超过 3200 个字符(包括所有 26 个字母和句点、空格、 和逗号)至少可以在其中一本书中找到。
在网站上,您可以搜索一个字符串(最多 3200 个字符),网站会返回 3 个结果: 1)只有那一串文本,这是一个独特的页面 2)该字符串出现在随机字符中的任何位置 3) 无论该字符串出现在实际英语单词的随机组合中的什么地方
让我惊讶的是,搜索的速度有多快。据推测,该站点实际上并没有存储任何页面,它们都是通过算法生成的(如果我错了,请纠正我)。如果是这种情况,它如何几乎立即生成所有可能的组合,将它们分成随机字符和英文单词,并告诉我字符串显示在多少页中?即使有一些统计上的手忙脚乱,如果它告诉我有 78482018 个页面与我的查询匹配,这更像是一个估计,它仍然会立即返回 20 个页面。不认真。 对。离开。
怎么会这么快?
【问题讨论】:
-
最有可能的是,他们使用的是弱 RNG,您可以在其中数学确定什么种子会产生给定的输出序列。但是,如果不查看来源,我们就无法判断。
-
谢谢;什么是弱 RNG?
-
啊,是的,对不起。我应该说什么是“弱RNG”。我搜索了谷歌,我能想到的最好的结果是它与加密和容易破译有关?
-
弱到可以预见。给定一定数量的输出,你可以知道种子是什么以及未来的输出是什么。
标签: string search random search-engine