2014-10-10 2 views
0

У меня проблемы с регулярным выражением.Automata-Regular Expression

Я пытался это упражнение:

над алфавитом {а, Ь}, создать регулярное выражение, которое:

A) Принять все слова, которые содержат хотя бы одно вхождение «а» или «б».

эпсилон * (а U б)

B) Примите все слова, которые имеют на максимум три 'a's'

C) Все слова, которые заканчиваются двойными буквами (например, АВВ НУ ABAA)

эпсилон * (аа U бб)

D) слова имеет точно одно вхождение три ааа (например. abaaab или baaab)

Итак, как вы можете видеть, у меня много проблем с регулярными выражениями, я сделал A и C, но я думаю, что они ошибаются, B e D я понятия не имею, как делать.

Могу ли я иметь некоторую помощь ..

ответ

1

A) Σ *. (А + б)
B) б * + Ь * .ab * + Ь * .ab * .ab * + Ь *. AB * .ab * .ab *
С) Σ *. (AA + BB)
D), (аб + AAB + Ь *) * .aaa. (ба + бе + Ь *) *

Вы получили A) и C) правильные идеи. Кроме того, это Sigma для алфавита, а не epsilon. И вы не используете U в регулярных выражениях. Он выражается символом +. Разрешены только операции:
∅ - пустой комплект
& epsilon; - пустое слово
а, б - терминалы в алфавите
+ для объединения
* для 0+ символов
. для конкатенации