我一直在尝试这个练习,但是我不知道如何继续下去。 等效于:
0* |a* |b* |(a|b)*
用0表示无效语言,我知道0 * =ε,所以正则表达式为:
ε | a* |b* |(a|b)*
我知道b *也包含在(a | b)*中,而a *也包含在其中,因为:
(a|b)* = (a*|b*)* = (a* b*)*
但是它不一样,所以在这一点上我不知道如何简化这个正则表达式
答案 0 :(得分:1)
好吧,如果a*
中同时包含b*
和(a|b)*
,则只需从正则表达式中删除a*
和b*
(因为它们与OR)。然后剩下ε|(a|b)*
。 Asterix表示任意数量的重复,因此,如果选择(a|b)*
的0次重复,则得到ε
。因此,您的正则表达式等效于:
(a|b)*