Интересный вопрос.

Sep 22, 2006 21:49

Можно ли задать регулярной грамматикой распознавание строки состоящей из четного количества единиц и нечетного нулей? Конечным автоматом без памяти - можно, говорят. И насколько задание этого распознавателя регулярной грамматикой будет сложнее по описанию, чем конечный автомат?( Мой вариант )

регулярные грамматики, ГТО, задача, подтягивания

Leave a comment

Comments 7

Проверим nealar September 22 2006, 18:12:08 UTC
У нас в конторе турник висит. Оной способности никогда не имел.

Reply

Re: Проверим thesz September 22 2006, 21:09:39 UTC
Подъем с переворотом учить все равно придется, однако это будет легче. ;)

Reply


dtim September 22 2006, 21:00:10 UTC
Собственно, для любого КА можно построить эквивалентную регулярную грамматику. Классы языков, задаваемых регулярными грамматиками, конечными автоматами и регулярными выражениями, совпадают.

Но твоя грамматика меня что-то смущает. По-моему, в ней вообще нельзя вывести конечную цепочку: у тебя каждое правило заканчивается на нетерминал. (Кроме того, правила вида recognize ::= o1e0 в регулярной грамматике недопустимы).

Я бы написал так (e1e0 - начальный нетерминал):

e1e0 ::= '0' e1o0 | '1' o1e0 | '0'
e1o0 ::= '0' e1e0 | '1' o1o0
o1e0 ::= '0' o1o0 | '1' e1e0
o1o0 ::= '0' o1e0 | '1' e1o0 | '1'

Соответствующий автомат выглядит так (начальное состояние - e1e0, заключительное - e1o0, в строках - состояния, в столбцах - входы):

'0' '1'
e1e0 | e1o0 | o1e0
e1o0 | e1e0 | o1o0
o1e0 | o1o0 | e1e0
o1o0 | o1e0 | e1o0

Как-то так. Или я что-то путаю?

Reply

dtim September 22 2006, 21:02:49 UTC
Форматирование сползло. В таблице автомата '0' относится ко второму столбцу, а '1' - к третьему.

А вот с турником у меня всегда были проблемы :(. :).

Reply

thesz September 22 2006, 21:12:53 UTC
С грамматикой всё в порядке и с автоматом тоже. ;)

Хорошо, что у меня ошибки нашел, но я их исправлять не буду (там достаточно добавить эпсилон-правило в e1o0, и будет желанный останов, а стартовое правило должно быть e1e0). ;)

А что с турником-то? Как прошел - подтянулся, всех делов. ;)

Reply

dtim September 23 2006, 00:18:44 UTC
А нет турника по пути. Был дома раньше, но об него все гости головой бились, пришлось снять :).

Reply


Leave a comment

Up