如何找到一种有效的算法来识别每个x最小的n和k,使得f ^(n)(x)= f ^(n + k)(x)

时间:2016-02-18 20:06:31

标签: algorithm loops linked-list

名义问题与以下问题相关:https://i.gyazo.com/07b7dde7efe1df0b7ae9550317851fda.png

可以提供关于名义问题的更详细解释但我不能发布超过两个链接,所以如果有人回复并要求它,我可以提供给你!

首先,我明白整个问题是基于用于循环检测的乌龟和野兔算法的想法(我会链接维基百科页面,但我没有足够的声誉)。我也明白,在离开第一个节点后,乌龟与野兔“相遇”会证明存在一个循环。我也知道,他们在算法第二阶段第二次见面的地方表明了循环的确切位置。

不幸的是,我根本无法将这些/这些事实与给出的问题以及如何为其创建算法相关。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

不知道你应该如何为它制作算法,但它看似简单的模数学。 T(x) = x mod 5H(x) = 2x mod 5。您被要求在T(x) = H(x)时解决。由于两个表达式都是模5,所以当2x - x = 5k k为整数时,你知道它们是相等的。