这是我画的DFA-
正确吗?
我很困惑,因为
q4
状态对于同一输入符号有 2
不同的转换,这违反了 DFA
的规则,但我想不出任何其他解决方案。
您的 DFA 不正确。
你的 DFA 完全错误,所以我不发表评论
RE 的 DFA:
0(1 + 0)*0 + 1(1 + 0)*1
语言描述:如果字符串以
0
开头,则应以 0
结尾,或者如果字符串以 1
开头,则应以 1
结尾。因此有两个最终状态(state-5、state-4)。
state-4:接受
1(1 + 0)*1
0(1 + 0)*0
DFA:
编辑:
正则表达式中的(0 + 1)* = (1 + 0)*
是由 1
和 0
组成的任何字符串,包括空字符串 ^
。
这里
+
表示并集,如果它出现在两个 RE: 之间,并且 A U B = B U A
(类似地)=> (0 + 1) = (0 + 1)
。
加号
+
的含义取决于它出现的语法:如果表达式是a+(+
是上标),这意味着多个a
之一,如果a+b
那么+
意味着并集操作 a
或b
。
a+ : { a, aa, aaa, aaa.....}
是具有 a
的语言中任意数量的 length > 1
字符串。
绘制确定性有限自动机: