【发布时间】:2018-04-26 16:44:23
【问题描述】:
我想设计一个字母表 {x,y,z} 的 DFA,它接受 'z' 的 3 倍数的单词(例如“xzyyxzzyy”)
有人知道怎么做吗?或者接受它的语言是什么?
【问题讨论】:
标签: theory computation
我想设计一个字母表 {x,y,z} 的 DFA,它接受 'z' 的 3 倍数的单词(例如“xzyyxzzyy”)
有人知道怎么做吗?或者接受它的语言是什么?
【问题讨论】:
标签: theory computation
您将需要三个状态来跟踪看到的 z 的数量,以 3 为模;状态将在输入 z 上相互循环,#z(w) = 0 (mod 3) 的状态将是唯一的接受状态。
为了允许任意的 x 和 y,每个状态都可以在这些输入上循环到自身。
您可以将 q0、q1 和 q2 用于状态,使 q0 成为初始状态并且仅接受状态。然后,您有三个转换 f(qi, z) = wh 其中 j = i + 1 (mod 3)、三个转换 f(q, x) = q 和三个转换 f(q, y) = q,总共九个过渡。
【讨论】: