我正在学习明天考试,我已经检查了很多教程,告诉我们如何将NFA转换为Regex,但我似乎无法确认我的答案。按照教程,我解决了NFA
我的解决方案是:
一 BA
我说错了吗?
答案 0 :(得分:2)
您的回答a*ba*
是正确的。我可以在给定图像中从NFA
开始你的答案如下:
启动状态q 0 上有一个带有标签a
的自循环。因此,在初始(前缀)可以有任意数量的a
s,包括RE中的空^
。所以正则表达式(RE)以a*
开头。
您只需要一个b
即可达到最终状态。实际上是接受字符串; b
和a
字符串中必须至少有一个b
。所以RE a*b
要达到q 1 或q 2 。两者都是最终状态。
一旦达到最终状态(q 1 或q 2 )。字符串中不可能有其他b
(q 1 和q 2 )b
没有外向边。
在q 1 和q 2 时,只能使用a
符号。同样,a
在q 1 或q 2 移动切换q 1 ,q 2 两者都是最终的。因此,在符号b
之后,任何数量的a
s都可以是后缀。 (所以字符串以a*
结尾)。
RE是a*ba*
。
此外, DFA 如下:
DFA:
======
a- a-
|| ||
▼| ▼|
--►(q0)---b---►((q1))
a* b a* :RE
====
a
处q0
的任意数量a*
:b
获得q1
后,您可以切换到最终状态b
:a
在最终状态下,a*
可以是任意数量的FAs
:REs
它是最小化的DFA!
以下是我在{{1}}和{{1}}上提供的一些更有趣的答案,相信对您有用:
答案 1 :(得分:1)
答案是正确的,因为以下两个都是正确的:
但是,由于您尚未发布任何内容,我无法检查您的工作。