[英]Design DFA accepting decimal strings divisible by 7
我是一名学习 DFA 的学生,正在寻找可以找到十进制数是否可以被 7 整除的 DFA。
今天我已经解决了数字 2、3、4、5、6、8、9 的可分性问题,但我无法解决数字 7 的这个问题。我在网上搜索过,但找不到任何帮助我的答案或者对我来说是可以理解的。
所以现在我在这里寻求帮助。 提前致谢。
基本思想是我们将跟踪我们目前看到的数字的当前值,即模 7。 每个新数字取旧数字,乘以 10,然后添加新数字。 因此,从x(mod 7)对应的状态开始,在右边加上数字d就意味着我们进入了10x + d(mod 7)对应的状态。 这个DFA有70个状态(数字0-9乘以7除以0-6后的余数)。
q s q'
------------
q0 0 q0
q0 1 q1
q0 … …
q0 6 q6
q1 0 q3
q1 1 q4
q1 … …
q1 6 q2
…
q6 0 q4
q6 1 q5
q6 … …
q6 6 q3
考虑对数字 36736 的处理:
(q0) --3--> (q3) --6--> (q1) --7--> (q3) --3--> (q5) --6--> (q0)
0 0*10+3 3*10+6 1*10+7 3*10+3 5*10+6
0+3 30+6 10+7 30+3 50+6
3 36 17 33 56
3 1 3 5 0
这个数字可以被七整除,因为我们最终处于状态 q0,该状态对应于零模七 - 意味着七的偶数倍。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.