2014 dxdy logo

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

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




На страницу Пред.  1, 2
 
 Re: Проверка слова на маску.
Сообщение11.01.2011, 21:37 
А у формы AA разве есть автомат?

 
 
 
 Re: Проверка слова на маску.
Сообщение12.01.2011, 23:03 
2Null
Если вам все-таки не хочется самостоятельно возиться с разбором строчек, просто воспользуйтесь регулярными выражениями, например из perl'а. К примеру, ваш паттерн AA соответствует регэксу (.*)\1 ну и т.д. Да, словосочетание "регулярные выражения" здесь не совсем к месту, просто терминология устоялась. :) Конечно, автоматный подход здесь просто так не применишь, да и временная асимптотика экспоненциальна, но это в теории, на деле (для большинства шаблонов) все шустро работает.

 
 
 
 Re: Проверка слова на маску.
Сообщение12.01.2011, 23:04 
Вы полагаете Perl чудесным образом быстро посчитает? ;-)

 
 
 
 Re: Проверка слова на маску.
Сообщение12.01.2011, 23:10 
Я добавил там в сообщение немножно про экспоненциальное время. :)

 
 
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 12:39 
Я про алгоритм спрашиваю. Да и задачи на олимпиадах в перле не принимают. Ну и не знаю я его.

 
 
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 14:32 
2Null
Цитата:
Да и задачи на олимпиадах в перле не принимают. Ну и не знаю я его.

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

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

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

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

 
 
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 15:22 
В грепе и ждаве регулярными выражениями называются другие, по-моему там проверка проще будет. Бэктрэкингом вы перебор обозвали?

 
 
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 15:32 
Но grep все-таки умеет работать с perl- и вообще ere-выраженияими, вроде того же (.*)\1.

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

 
 
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 15:59 
Ничего найти не могу. :-(

 
 
 
 Re: Проверка слова на маску.
Сообщение13.01.2011, 16:22 
Ну вот например:
  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 
В ваших ссылках ничего похожего а разбор AA нету.

 
 
 [ Сообщений: 26 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group