【发布时间】:2019-04-01 04:23:44
【问题描述】:
这个正则表达式接受链的条件是什么?
【问题讨论】:
标签: regex automata dfa automata-theory
这个正则表达式接受链的条件是什么?
【问题讨论】:
标签: regex automata dfa automata-theory
末尾的 * 可以表示初始状态正在接受,并且自动机在接受任何内容时都会返回此状态。调用初始状态 q1。
要接受 1(01*0)1,我们必须首先消耗 1 并进入一个新状态,比如 q2。从那里,我们可以在子表达式 01*0 上自循环,方法是在 0 上转到新状态 q3,然后在 q3 中循环 1,然后在 0 上返回到 q2。
从 q2 开始,我们可以在 1 上返回到 q0。我们的 DFA 如下所示:
/--1--\ /--0--\
| \ | |
V | V |
--->(q1)-1->(q2)-0->(q3)-\
| ^ \
0 | /
| \-1-/
V
(q4)-\
^ \
| /
\0,1/
应该这样做。
【讨论】:
当你不知道如何开始时,你应该写下几个由正则表达式生成的第一个元素。在这种情况下:
SET = {eps, 11, 1001, 10101, ...}
然后试着编造一些东西。不过你得到了答案,所以我不会重复这个。
【讨论】:
【讨论】: