regex 不以01结尾的字符串的自动机正则表达式

jecbmhm3  于 2023-05-01  发布在  其他
关注(0)|答案(3)|浏览(108)

不以01结尾的字符串自动机。

我无法获得Alphabet={0,1}的Automata的正则表达式,该Automata生成的字符串不以0,1结尾。
下面是状态图:
State Diagram
我用Matthew McClintock的Visual Automata Simulator工具得到了这个状态图,所以我测试了一些字符串,比如空字符串e,“0”,“1”,“00”,“10”,“11”和那些不以01结尾的字符串,它似乎可以工作。
你能帮我得到正则表达式吗?我没有正式介绍计算机自动机理论,所以我几乎不理解dfa,nfa的概念,命名法对我来说有点奇怪。
我试着获取regexp,其中一个是:
(0+1)(00+10+11)
但我不确定这是否正确
然后根据图表,我尝试了以下操作:
1
(001+0+01)+1(00 1+01)
或者类似的事情。你知道在哪里可以测试正则表达式吗?

7hiiyaii

7hiiyaii1#

正如我在评论中所说,你在第一次尝试中非常接近。这应该可以工作:

(0+1)*(00+10+11)+0+1+ε

或者用程序员的话来说

^([01]*(00|10|11)|0|1|)$

谢谢nhahtdh,我确实有。

1wnzp6jl

1wnzp6jl2#

你至少应该提出这个DFA:

然后使用这里描述的步骤来求解正则表达式。

R1 = 1R1 + 0R2 +       λ
R2 =       0R2 + 1R3 + λ
R3 = 1R1 + 0R2

剩下的就留给你作为练习。

58wvjzkj

58wvjzkj3#

下面是不以'01'结尾的FA,正则语言是((0+1)*(00+11+10))

相关问题