[英]Need to construct DFA (deterministic finite automaton)
您需要以2和3记录除数的状态,这意味着您需要6个状态。 只需将它们称为0|0
1|0
0|1
1|1
0|2
1|2
。 第一位告诉您到达状态时,您有一个偶数或奇数的零,第二位告诉您到达状态时,您有一个数字1,当被3除时,得到给定的模量。
您的状态图包含:
0|x --0--> 1|x
1|x --0--> 0|x
y|0 --1--> y|1
y|1 --1--> y|2
y|2 --1--> y|0
起始状态为0|0
,这也是唯一的停止状态。
需要了解的重要一点是,每个状态分别记录读取的零或一的数目除以2所得的模数3。0 0|0
则在两种情况下均为模数0,这是接受标准。 这都是可行的,因为要跟踪的不同状态的数量是有限的。 DFA这个名称已经告诉我们,要跟踪无数个州,它是行不通的。
一种查看方法是问题要求2种语言的交集:一种包含偶数个零,而另一种包含被3整除的个数。一种解决方法是使两种语言的DFA一致,然后制作另一个DFA,以便在读取输入符号时跟踪每个DFA中的状态对。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.