我需要构造一个DFA,它识别所有仅由0和1组成的字符串,因此它具有偶数个零和可被3整除的数量。我发现偶数个0的情况下的自动机甚至1的数量:
我尝试通过添加一些状态,更改分支等来从这里开始。但是我仍然没有成功,通常会忘记自动机做什么,因为我要添加分支和状态。任何帮助将不胜感激。
答案 0 :(得分:1)
你需要通过2和3记录可分性的状态,这意味着你需要6个状态。只需将其称为.babelrc
,0|0
,1|0
,0|1
,1|1
,0|2
。第一个数字告诉你,当你到达状态时,你有一个偶数或奇数个零,第二个数字告诉你,当你到达状态时,你有1个数,当除以3时给出给定的数模量
您的状态图包含:
1|2
开始状态为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
,这也是唯一的停止状态。
要理解的重要一点是,每个状态记录分别为2时读取的零或1的模数。然后,0|0
在两种情况下都是模数0,这是接受的标准。这一切都有效,因为要跟踪的不同状态的数量是有限的。 DFA这个名称已经告诉我们,它无法跟踪无数个状态。
答案 1 :(得分:0)
查看它的一种方法是问题要求两种语言的交集:一种包含偶数个零,另一种具有可被3整除的数量。一种方法是对两种语言进行DFA。语言,然后制作另一个DFA,在读取输入符号时跟踪每个DFA中的状态对。