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