![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите выявить повторения.... [D6, WinXP]
Drakosha © (2005-01-28 16:24:00)Есть функция которая выдаёт на выходе строку цифр
типа '12345890890890890890'
помогите преобразовать к виду '12345(890)'
ну тобишь найти когда начинается повторение.(повтаряться не только 890 будет, а любой набор цифр.
Drakosha (2005-01-31 16:14:00) [1]Если что то сопадает, то возпожноэто и есть период...
:)
КаПиБаРа (2005-01-31 12:41:00) [2]Записываешь 2 строчки одну под другой.
Сдвигаешь вправо
12345890890890890890
12345890890890890 890
--------------------
00000000111111111111
Проверяешь цифры расположенные друг под другом. Если что то сопадает, то возпожно это и есть период...
ЮЮ (2005-01-31 12:40:00) [3]>Можем получить типа '1234589(089)'
Как?
шаг1. '9' '0' - нет повторения
шаг2. '08' '90' - нет повторения
шаг3. '890' '890' - есть повторение
другое дело, для случая 233233233 получим 2332332(3), хотя надо (233), поэтому алгоритм лучше не сварачивать при первом нахождении, а продолжить до конца, всят тот вариант, который сворачивает большее количесто символов
Gloomer (2005-01-31 12:27:00) [4]>ЮЮ © (31.01.05 12:11) [5]
Алгоритм имеет право на жизнь, но он не определяет первой цифры начала повторения. Можем получить типа '1234589(089)'.
Конечно это одно и то же, но обычно так не принято.
ЮЮ (2005-01-31 12:11:00) [5]цикл по <длине повторения> от 1 до половины длины строки
если
части строки длиной <длине повторения> в конце строки
и непосредственно перед ней совпали
то
//найдена повторяющаяся часть
сворачиваем повторения
выход из цикла
конец если
конец цикла
Drakosha (2005-01-31 11:57:00) [6]2REA
Повторения будут начанатьсяс какого то места и продолжаться дальше.. т.е. в твоём примере их вообще нет.
REA (2005-01-28 17:39:00) [7]Только что есть повторения? Например в такой строке aababcabcdabcde. ab - 4, abc - 3, abcd - 2
REA (2005-01-28 17:38:00) [8]Можно по принципу Gif - строить таблицу всех встреченных комбинаций.
TUser (2005-01-28 16:26:00) [9]Фурье-анализ тебе нужен :)
А лучше - просто перебор. Поскольку известно, что повторения абсолютно точные - то проверяй на повторение одного, двух, трех и т.д. символов.