什么将是DFA的正则表达式0(0 + 1)* 0 + 1(0 + 1)* 1?(What will

2019-07-17 18:36发布

这是DFA我有drawn-

这是对的吗?
我很困惑,因为q4州有2个违反的规则相同输入符号不同转换DFA ,但我想不出任何其他的解决方案。

Answer 1:

您的DFA是不正确的。
您的DFA是完全错误的,所以我不评论

DFA的RE:

0(1 + 0)*0 + 1(1 + 0)*1  

语言描述 :如果字符串开始0它应该结束0或者如果字符串开始1它应该结束1 。 因此两个最终状态(状态5,状态-4)。

状态-4:接受1(1 + 0)*1
状态5:接受0(1 + 0)*0
国家1:启动状态。

DFA:

编辑

+运营商正则表达式

(0 + 1)* = (1 + 0)*是任意字符串包括1秒和0 S,其中包括空字符串^

这里+表示联盟如果2个RE之间出现:与AUB = BUA (类似地)=> (0 + 1) = (0 + 1)

加的意义+取决于语法它出现在:如果expression是+( +是上标),这意味着更多的一个a S和IF a+b然后+意味着联盟操作或者ab

a + : { a, aa, aaa, aaa.....}是任何数量的a与语言串length > 1



Answer 2:

我想你应该先0开始

0(1 + 0)*0 + 1(1 + 0)*1



文章来源: What will be the DFA for the regular expression 0(0+1)*0+1(0+1)*1?