Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Текст и последовательность операций

4.1K
21 апреля 2005 года
sonjia
38 / / 06.04.2004
Короче, есть такая задачка...
Дана текстовая строка X состоящая из букв некого алфавита. Над этой строкой можно производить следующие операции:
1.Замена участка текста с позиции P и длинной L на произвольный текст той же длинны (частный случай – замена одной буквы).
2.Вставка в позицию P произвольного текста длинной L.
3.Удаление куска текста длинной L в позиции P.
4.Инверсия текста в позиции P и длинной L (например: ABCDEF может превратиться в ADCBEF)
5.Дубликация текста в позиции P и длинной L в новую позицию P1 (например: ABCDEF – ABCDEABCF)
В результате определенной последовательности действий получается новая строка Y.
Как решить прямую задачу (т.е. дана X и последовательность действий) понятно! А вот как решить обратную задачу (т.е. дана X и Y, надо найти все возможные последовательности действий, которые привели к преобразованию X в Y)???
Такая задача вообще решена??? Что можно почитать по этой теме? В какую сторону капать?
391
21 апреля 2005 года
Archie
562 / / 03.02.2005
Цитата:
Originally posted by sonjia
Короче, есть такая задачка...
Дана текстовая строка X состоящая из букв некого алфавита. Над этой строкой можно производить следующие операции:
1.Замена участка текста с позиции P и длинной L на произвольный текст той же длинны (частный случай – замена одной буквы).
2.Вставка в позицию P произвольного текста длинной L.
3.Удаление куска текста длинной L в позиции P.
4.Инверсия текста в позиции P и длинной L (например: ABCDEF может превратиться в ADCBEF)
5.Дубликация текста в позиции P и длинной L в новую позицию P1 (например: ABCDEF – ABCDEABCF)
В результате определенной последовательности действий получается новая строка Y.
Как решить прямую задачу (т.е. дана X и последовательность действий) понятно! А вот как решить обратную задачу (т.е. дана X и Y, надо найти все возможные последовательности действий, которые привели к преобразованию X в Y)???
Такая задача вообще решена??? Что можно почитать по этой теме? В какую сторону капать?


Последовательность действий будет бысто стемиться к бесконечности, т.к. чтобы преобразовать A->B можно заменить символ сразу, а можно A->C->G->S->A->V->B

4.1K
21 апреля 2005 года
sonjia
38 / / 06.04.2004
Цитата:
Originally posted by Archie
Последовательность действий будет бысто стемиться к бесконечности, т.к. чтобы преобразовать A->B можно заменить символ сразу, а можно A->C->G->S->A->V->B


Там вводятся ограничения, что бы не было такой и подобных ситуаций.

488
21 апреля 2005 года
Mоngооsе
465 / / 01.04.2005
Цитата:
Originally posted by sonjia
Короче, есть такая задачка...

Сперва нужно определить наиболее длинные общие подпоследовательности двух строк. Напр. AABCCDD СBCFGCCCDEED, тогда

С[color=red]ABC[/color][color=darkblue]CD[/color]H[color=green]D [/color]
AAA[color=red]ABC[/color]FGCC[color=darkblue]CD[/color]EE[color=green]D[/color]

И после этого можно двигаться дальше.

В книге. Дж.Бакнелл-"Фундаментальные алгоритмы и структуры данных в Delphi" есть программа выделяющая подстроки.

4.1K
22 апреля 2005 года
sonjia
38 / / 06.04.2004
Более точная постановка задачи...

Дана текстовая строка X состоящая из букв некого алфавита. Над этой строкой можно производить следующие операции редактирования:
1. Замена подстроки с позиции P и длинной L на произвольную подстроку той же длинны.
2. Вставка в позицию P произвольного текста длинной L.
3. Удаление подстроки длинной L в позиции P.
4. Инверсия текста в позиции P и длинной L.
5. Дубликация подстроки в позиции P и длинной L в новую позицию P1.
В результате определенной последовательности действий получается новая строка Y.
Каждая операция имеет свою цену. Эта цена зависит от длинны подстроки (L), ее позиции (P) и от ряда других факторов (все это задается перед началом работы).
Необходимо найти все последовательности операций редактирования с суммой их цен:
1. находящийся в некотором заданном интервале.
2. если такой не задан, то искать с минимальной суммой цен (но эта сумма цен должна быть больше или равна некоторого заданного минимального значения, частный случай – минимальное значение равно 0).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог