我需要使用以下属性在{a,b,c}语言上创建非空DFA:
我只是想知道,我应该创建3个单独的自动机,然后使用交叉点组合它们,或者我应该创建一个,如果是这样的话,它怎么能有偶数个b?我知道我可以交替使用状态,但不确定如何将它全部组合起来。
由于
答案 0 :(得分:1)
这是你的自动机(假设0是偶数,因此0 b是可以的):
[start](a) -> [1]
[start](b,c,<eoi>) -> [reject]
[1](a) -> [1]
[1](<eoi>) -> [reject]
[1](c) -> [2]
[1](b) -> [3]
[2](<eoi>) -> [accept]
[2](c) -> [2]
[2](a) -> [1]
[2](b) -> [3]
[3](<eoi>) -> [reject]
[3](a,c) -> [3]
[3](b)->[1]
“输入结束”在哪里。
状态1:偶数b,最后一个符号处理不是c。 状态2:偶数b,处理的最后一个符号是c。 状态3:b的奇数。