我的理解是tortoise-hare类似的算法适用于迭代序列 也就是说,对于任何 x,succ(x) = x0。
我想实现一个算法,可以检测确定性和非确定性无限重复序列中的循环。
序列可能有一个非重复的前缀子序列,例如在序列 1666666...
中,有前缀 1
和重复模式 6
。
该算法将返回序列中最长的重复模式。
001100110011...
的重复模式将是 0011
,22583575837583758...
的重复模式将是 58357
.
我的想法是以某种方式从那里生成对最长可能模式长度的猜测,但我无法按顺序进行。
最佳答案
tortoise-hare算法使用相同的地址来识别周期。这个问题需要一种不同的算法。某种形式的 trie 或结构(例如 LZW 压缩)将是我寻找解决方案的地方。
关于algorithm - 非迭代序列中的循环检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32444868/