如何为以下语言设计DFA?

时间:2013-09-13 14:02:20

标签: theory regular-language finite-automata dfa automata

如何设计DFA:

Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

十进制数字集。

L = {w| The decimal number represented by w leaves an odd remainder when divided by seven.}

到目前为止,我已经(手)绘制了七个状态(q0-q6),奇数个q状态正在接受。

我从哪里开始?

1 个答案:

答案 0 :(得分:1)

我将分两步构建:

  1. 构造一个DFA,其状态会在除以7时跟踪w的余数。你可以通过构造状态0,1,2,3,...,6并按如下方式链接它们:如果w除以r除以7并且下一个数字是d,那么你想要结束在对应于10r + d(mod 7)的状态中。这将从每个州提供十个外向链接。计算这些链接会很烦人,但你只需要做一次。

  2. 将状态1,3和5标记为接受,将其他所有标记为拒绝。

  3. 希望这有帮助!