我正在试图通过正则表达式和语言问题,然而,这个问题似乎让我陷入困境。
有人可以帮忙吗?
我正在尝试写出这个正则表达式定义的集合:
答案 0 :(得分:1)
要理解这个正则表达式,我们可以分别考虑它的三个部分:
(a |Ɛ) abb (a | b)
在三个组/部分中定义此正则表达式
\ --- 1 ---- - 2 --- --- 3 ---
使用括号
第1部分:Ɛ是正则表达式中的空符号,如果它与带有union运算符的其他符号(或符号组)一起出现这意味着符号(或组)是选项,例如可以出现或不出现在某些语言字符串中(FA中的Ɛ符号,因为边缘标签定义了“空转换” - 这允许转换到新状态而不消耗任何输入符号。)
在你的正则表达式中,首先'a'用Ɛ - (a |Ɛ)写成,所以它是选项 - 它可以出现在某个字符串中或在其他字符串中不存在。因此,使用此正则表达式生成的字符串以两个“a”或一个“a”开头。
Part-2:使用此正则表达式,子字符串'aab'始终显示在所有可能的字符串中。
所以字符串有两种可能的形式:
- aabb(a | b)
- ABB(A | B)
醇>
第3部分:(a | b)字符串以符号“a”或符号“b”结尾。
如果上述两个表格都以'a'结尾
- aabba
- ABBA
如果上述两个表格都以'b'结尾
- aabbb
- ABBB
当然它是一种有限语言,它的DFA不包含任何循环。它的DFA语言{aabba,abba,aabbb,abbb}如下: