Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Помогите выявить повторения....   Найти похожие ветки 

 
Drakosha   (2005-01-28 16:24) [0]

Есть функция которая выдаёт на выходе строку цифр
типа "12345890890890890890"
помогите преобразовать к виду "12345(890)"
ну тобишь найти когда начинается повторение.(повтаряться не только 890 будет, а любой набор цифр.


 
TUser ©   (2005-01-28 16:26) [1]

Фурье-анализ тебе нужен :)
А лучше - просто перебор. Поскольку известно, что повторения абсолютно точные - то проверяй на повторение одного, двух, трех и т.д. символов.


 
REA   (2005-01-28 17:38) [2]

Можно по принципу Gif - строить таблицу всех встреченных комбинаций.


 
REA   (2005-01-28 17:39) [3]

Только что есть повторения? Например в такой строке aababcabcdabcde. ab - 4, abc - 3, abcd - 2


 
Drakosha   (2005-01-31 11:57) [4]

2REA
Повторения будут начанатьсяс какого то места и продолжаться дальше.. т.е. в твоём примере их вообще нет.


 
ЮЮ ©   (2005-01-31 12:11) [5]

цикл по <длине повторения> от 1 до половины длины строки
 если
   части строки длиной <длине повторения> в конце строки
   и непосредственно перед ней совпали
 то
   //найдена повторяющаяся часть
   сворачиваем повторения
   выход из цикла
 конец если
конец цикла


 
Gloomer ©   (2005-01-31 12:27) [6]

>ЮЮ ©   (31.01.05 12:11) [5]
Алгоритм имеет право на жизнь, но он не определяет первой цифры начала повторения. Можем получить типа "1234589(089)".
Конечно это одно и то же, но обычно так не принято.


 
ЮЮ ©   (2005-01-31 12:40) [7]

>Можем получить типа "1234589(089)"

Как?
шаг1. "9" "0" - нет повторения
шаг2. "08" "90" - нет повторения
шаг3. "890" "890" - есть повторение
 
другое дело, для случая 233233233 получим 2332332(3), хотя надо (233), поэтому алгоритм лучше не сварачивать при первом нахождении, а продолжить до конца, всят тот вариант, который сворачивает большее количесто символов


 
КаПиБаРа ©   (2005-01-31 12:41) [8]

Записываешь 2 строчки одну под другой.
Сдвигаешь вправо

12345890890890890890
  12345890890890890  890
--------------------
00000000111111111111


Проверяешь цифры расположенные друг под другом. Если что то сопадает, то возпожно это и есть период...


 
Drakosha   (2005-01-31 16:14) [9]

Если что то сопадает, то возпожно это и есть период...

:)



Страницы: 1 вся ветка

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
6-1101476564
MegaVolt
2004-11-26 16:42
2005.02.13
Почему TIdMappedPortTCP имеет ограничение по количеству клиентов?


4-1103274786
TankMan
2004-12-17 12:13
2005.02.13
Как получить доступ к BIOS-у из WinNT (а еще и из Win9X)?


14-1106622663
Думкин
2005-01-25 06:11
2005.02.13
С Днем Рождения! 25 января


14-1106224865
Anonimus
2005-01-20 15:41
2005.02.13
Выделенка на Вынь2к


1-1106817408
Fanny
2005-01-27 12:16
2005.02.13
Свойство Мультиязыковый у EXE-файла