Я ищу помощь в понимании алгоритма обнаружения цикла Флойда. Я прошел объяснение в Википедии ( http://en.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare )
Я могу видеть, как алгоритм обнаруживает цикл в O (N) времени. Однако я не могу представить себе тот факт, что как только указатели черепахи и зайца встречаются в первый раз, начало цикла можно определить, переместив указатель черепахи обратно, чтобы запустить, а затем переместив черепаху и зайца по одному шагу за раз. Точка, где они впервые встречаются, является началом цикла.
Может ли кто-нибудь помочь, предоставив объяснение, которое, я надеюсь, отличается от того, которое есть в Википедии, поскольку я не могу понять / представить его?
fast
переменная, или «заяц», должна двигаться вдвое быстрее, чем черепаха, а не впереди?