Праверьте пожалуйста правильность построения КС-грамматики, порождающей язык:
где метасимвол * обозначает любое слово в данном алфавите.
Пусть слово
начинается с символа
, тогда рассмотрим два случая (рассмотрим пока слова длины в 4 символа):
Т.е.
возможно является словом с избытком символов
(точнее оно может содержат на один символ
больше, чем нужно). А
может содержать на два символа
больше, чем нужно.
Далее,
всегда можно представить в виде двух стоящих рядом подцепочек, каждая из которых содержит на одно вхождение символа "d" больше, чем нужно. Поэтому в первом случае:
В случае 2:
(где
- слово из данного языка)
Итак, если слово x начинается с
, то
Теперь пусть слово
начинается с символа d. Тогда получим два случая:
Тогда
(т.к. в слове
всегда содержится как минимум на два символа "a" больше, чем символов "d")
Собрав все вместе, получим ответ:
Думаю что есть способы проще, но я нигде примеров не нашел по построению грамматик, может еще книгу мне посоветуете с примерами, очень пригодится