如何解决将用于电子邮件验证的NFA转换为DFA
任何人都可以帮助将用于此电子邮件验证的NFA转换为DFA吗?
为了进行转换,我首先创建了状态转换表,然后有人可以帮助创建DFA吗?
解决方法
从您的epsilon瓶盖生产DFA似乎很直接。每个闭包形成单个DFA状态,并且DFA中的转换是NFAε闭包中节点的转换的集合。这是您的e-closures中DFA的转换表:
| a-z | 0-9 | @ | _ | . | com
---|-----|-----|---|----|----|-----
A^ | AB | | | | |
AB | AB | AB | C | | |
C | CD | CD | | CD | |
CD | CD | CD | | CD | CE |
CE | CD | CD | | CD | | F
F$ | | | | | |
这是此表(view on graphviz)的DFA:
digraph G {
rankdir=LR;
node [shape=point]; qi;
node [shape=doublecircle]; F;
node [shape=circle];
qi -> A;
A -> AB [label="a-z"]
AB -> AB [label="a-z | 0-9"];
AB -> C [label="@"]
C -> CD [label="a-z | 0-9 | _"]
CD -> CD [label="a-z | 0-9 | _"]
CD -> CE [label="."]
CE -> CD [label="a-z | 0-9 | _"]
CE -> F [label="com"]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。