Здравствуйте, vitaly_spb, Вы писали:
_>задача: составить алгоритм поиска периода цикла.
_>пример последовательности: 5-12-9-38-144-52-9
Есть такая штука — поиск периодичности в ДНК. почти такая же задача, только вместо чисел — 20ть аминокислот.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, vitaly_spb, Вы писали:
_>есть некая функция
_>x2=f(x1)
_>она генерирует (по неизвестному нам закону) следующее число некой последовательности (кстати, целочисленной)
_>соответственно x3=f(f(x1)))
_>как известно все языки программирования имеют ограниченную разрядность целых типов, соответственно эта последовательность рано или поздно замкнётся (либо по переполнению, либо по алгоритму).
_>задача: составить алгоритм поиска периода цикла.
_>пример последовательности: 5-12-9-38-144-52-9
Если функция "классическая" (без внутреннего состояния), то повтор одного числа в последовательности повлечет за собой повтор и последующих.
В этом случае храним уже получившиеся числа и итерацию, на которой они получены (например, в хэш-таблице). Если число повторяется — длина цикла=текущая итерация-итерация, когда это число уже было.