我想设计一个字母{x,y,z}的DFA,它接受多个'z'倍数为3的单词(例如“xzyyxzzyy”)
有谁知道怎么样?或者哪种语言接受它?
你将需要三个状态来跟踪所见的z的数量,模三;状态将在输入z上相互循环,而#z(w)= 0(模式3)的状态将是唯一的接受状态 .
为了允许任意x和y,每个状态可以在这些输入上循环自身 .
您可以将q0,q1和q2用于状态,使q0成为初始状态并且仅接受状态 . 那么,你有三个过渡f(qi,z)= wh其中j = i 1(mod 3),三个过渡f(q,x)= q和三个过渡f(q,y)= q总共九个过渡 .
1 回答
你将需要三个状态来跟踪所见的z的数量,模三;状态将在输入z上相互循环,而#z(w)= 0(模式3)的状态将是唯一的接受状态 .
为了允许任意x和y,每个状态可以在这些输入上循环自身 .
您可以将q0,q1和q2用于状态,使q0成为初始状态并且仅接受状态 . 那么,你有三个过渡f(qi,z)= wh其中j = i 1(mod 3),三个过渡f(q,x)= q和三个过渡f(q,y)= q总共九个过渡 .