2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Проверка слова на маску.
Сообщение11.01.2011, 21:37 
Заслуженный участник


12/08/10
1680
А у формы AA разве есть автомат?

 Профиль  
                  
 
 Re: Проверка слова на маску.
Сообщение12.01.2011, 23:03 
Заслуженный участник


26/07/09
1559
Алматы
2Null
Если вам все-таки не хочется самостоятельно возиться с разбором строчек, просто воспользуйтесь регулярными выражениями, например из perl'а. К примеру, ваш паттерн AA соответствует регэксу (.*)\1 ну и т.д. Да, словосочетание "регулярные выражения" здесь не совсем к месту, просто терминология устоялась. :) Конечно, автоматный подход здесь просто так не применишь, да и временная асимптотика экспоненциальна, но это в теории, на деле (для большинства шаблонов) все шустро работает.

 Профиль  
                  
 
 Re: Проверка слова на маску.
Сообщение12.01.2011, 23:04 
Заслуженный участник


04/05/09
4589
Вы полагаете Perl чудесным образом быстро посчитает? ;-)

 Профиль  
                  
 
 Re: Проверка слова на маску.
Сообщение12.01.2011, 23:10 
Заслуженный участник


26/07/09
1559
Алматы
Я добавил там в сообщение немножно про экспоненциальное время. :)

 Профиль  
                  
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 12:39 
Заслуженный участник


12/08/10
1680
Я про алгоритм спрашиваю. Да и задачи на олимпиадах в перле не принимают. Ну и не знаю я его.

 Профиль  
                  
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 14:32 
Заслуженный участник


26/07/09
1559
Алматы
2Null
Цитата:
Да и задачи на олимпиадах в перле не принимают. Ну и не знаю я его.

Ну что вы к perl'у-то прикопались, я же просто пример привел. Уж grep-то у вас всегда под рукой есть.

Цитата:
Я про алгоритм спрашиваю.

Можно почитать исходники любой ERE-совместимой программульки, e.g., того же grep'а (там регулярные выражения даже круче реализованы чем в perl'е).

Для этого используется бэктрэкинг (+динамическое программирование). Мне показалось, что можно для оптимизации использовать вещи вроде Z-функции, суффиксных деревьев, &c. :)

 Профиль  
                  
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 15:22 
Заслуженный участник


12/08/10
1680
В грепе и ждаве регулярными выражениями называются другие, по-моему там проверка проще будет. Бэктрэкингом вы перебор обозвали?

 Профиль  
                  
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 15:32 
Заслуженный участник


26/07/09
1559
Алматы
Но grep все-таки умеет работать с perl- и вообще ere-выраженияими, вроде того же (.*)\1.

У вас же есть google и такой дядька как Russ Cox, почитайте его отжиги. :)

 Профиль  
                  
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 15:59 
Заслуженный участник


12/08/10
1680
Ничего найти не могу. :-(

 Профиль  
                  
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 16:22 
Заслуженный участник


26/07/09
1559
Алматы
Ну вот например:
  1. Russ Cox, Regular Expression Matching Can Be Simple And Fast,
  2. Regular Expression Matching: the Virtual Machine Approach,
  3. Regular Expression Matching in the Wild.
Особенно вторую часть посмотрите.

Про бэктрэкинг, Z-функцию и суффиксные деревья информация есть в википедии (наверное). Исходники grep'а по прежнему стоит почитать (только надо найти правильную версию с поддержкой ere выражений).

 Профиль  
                  
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 16:33 
Заслуженный участник


12/08/10
1680
В ваших ссылках ничего похожего а разбор AA нету.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group