转换 RE ->全国期货协会

发布于 2024-11-06 07:34:47 字数 189 浏览 1 评论 0原文

我有一个关于将正则表达式转换为非确定性有限状态自动机的问题:

将 (a*|b*)* 转换为 NFA。我的尝试如下:

在此处输入图像描述

我完全偏离目标了吗?或者说有一点?

NB E => ε

I have a question regarding the conversion of regular expressions to non-deterministic finite state automata:

Convert (a*|b*)* to NFA. My attempt is as follows:

enter image description here

Am I completely off the mark? Or somewhat there?

NB E => ε

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧话新听 2024-11-13 07:34:47

您的 NFA 与 (a*|b*)* 匹配相同的语言,因此答案是正确的。

但是,有许多 NFA 匹配相同的语言,在您的情况下,可以删除至少三个 epsilon 箭头。尽管如此,它不会比你的建议更正确。

正则表达式 (a*|b*)* 也可以在不改变语义的情况下进行简化。例如,(a|b)* 相当于(a*|b*)*。如果你仔细想想,FA 可以像这样简单:

Finite Automaton equal to (a|b)*

Your NFA matches the same language as (a*|b*)*, so the answer is correct.

However, there are many NFAs that match the same language and in your case it would be possible to remove at least three epsilon arrows. Still, it will not be more correct than your suggestion.

The regex (a*|b*)* can also be simplified, without changing the semantics. E.g. (a|b)* is equivalent to (a*|b*)*. And if you think about it, the FA can be as simple as this:

Finite Automaton equivalent to (a|b)*

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文