整数序列在线百科全书支持搜索包含您的查询作为子序列的序列,例如。搜索subseq:212,364,420,428
将返回8*n+4
序列。(http://oeis.org/search?q=subseq:212,364,420,428)
这个惊人的功能显然是由 Russ Cox 和http://oeis.org/wiki/User:Russ_Cox/OEIS_Server_Features实现的,但没有具体说明这是用什么算法实现的。
我想知道它是如何完成的。显然,每次搜索都要经过近一百万个序列对于搜索引擎来说是不切实际的。仅仅保留第一个数字的索引(这就是 Russ Cox 所做的 Google Code Regex Search 的方式)并强制其余的数字也行不通,因为0
几乎所有序列中都有类似的数字。事实上,一些查询喜欢0 1
匹配整个数据库的很大一部分,所以算法需要一个对所需输出大小敏感的运行时间。
有谁碰巧知道这个功能是如何实现的?