2017-02-13 53 views
0

请帮帮我做出的以下条件的DFA:如何制作以下条件的DFA?

L = {瓦特:N 一个(w)的MOD 3>Ñ b(w)的模3},

其中n 一个(W)表示的a出现在w和数量n b(W)表示W的b出现的次数。

+0

让我们开始吧。每个DFA都有一个初始状态。你会说从初始状态到其他状态的转换,以及这些转换的条件是什么?如果没有更多符号,您也可以有一个或多个接受字符串“w”的状态。 –

回答

0

首先为n(a)mod3水平设计DFA,其初始状态设计为n(b)mod3垂直.....总共需要9个状态和标记状态(a,b),其中a是n(a)mod3和b代表n(b)mod3,然后使元组的第一个元素大于第二个元素的状态作为最终状态(在这种情况下会有3个).....希望我的回答能帮助

0

我们需要跟踪的唯一事情是分别出现a和b mod 3的次数。有三种可能为每个国防部3和b MOD 3(0,1或2,分别地)的和,因为这些是独立的,我们可以在总共九个状态:

  • Q00:一个模3 = 0,b模3 = 0
  • Q01:一个模3 = 1,b模3 = 0
  • Q02:一个模3 = 2,b模3 = 0
  • Q10:一个模3 = 0, b MOD 3 = 1
  • Q11:一个模3 = 1,b模3 = 1
  • Q12:一个模3 = 2,b模3 = 1
  • Q20:一个模3 = 0,B模3 = 2
  • Q21:一个模3 = 1,B模3 = 2
  • Q22:一个模3 = 2,B模3 = 2

这些将是我们DFA的状态。的过渡是如下:

  • 从状态qij,过渡到 '上输入一个,其中j'= qij(J + 1)MOD 3
  • 从状态qij,过渡到输入B qi'j ,其中i'=(i + 1)mod 3

这给我们总共18次过渡。

我们希望接受mod 3> b mod 3;那就是:

  • 状态qij正在接受当且仅当J>时我

这使我们3个接受状态。最后,我们的初始状态发生在我们看到任何一个符号都为零的情况下;那就是:

  • 初始状态为Q00

我们现在已经完全定义为DFA这种语言。