Очень часто в практических задачах возникает необходимость искать цикл в некоторых последовательностях значений. Одним из таких подходов, решающих эту задачу, является алгоритм черепахи и зайца. Так, можно найти ему применение в криптографии для поиска коллизий в хэш-функциях, в определении насколько «случайны» генераторы случайных значений и даже в факторизации чисел. Однако прежде, чем перейти к описанию алгоритма, формализуем задачу, которую он решает. Условия задачи Пусть у нас есть некоторая функция f, которая сопоставляет некоторому элементу из множества S элемент из этого же множества. Каждое применение этой функции к элементу будем называть итерацией. Таким образом, если выписать ряд, построенный на применении f к некоторому x_0 из множества S, мы получим следующую запись: Это можно изобразить на конкретных значениях более наглядно в виде функционального графа: Таким образом, задачей является нахождение такого индекса i, с которого начинается зацикливание последовательности, и