验证以下答案是否正确?
Verify wether the following answer is correct?
我被要求编写在字母表 Z={a,b} 上生成以下语言的语法
M={w | w 中 b 的个数是 3 模 4}
我的答案是
S->bP| bJ | aS
P->bQ | bK | AP
Q->bR | bL | Q
R->bS |电子 | aS
L->e
这行得通吗?
我们可以做得更好吗?
不确定 J、K 和 L 是什么。但是,是的,您可能会做得更好;具有 4 个状态的 DFA 可以识别您的语言,因此肯定存在具有四个非终结符的常规语法:
S -> aS | bR
R -> aR | bT
T -> aT | bU | b
U -> aU | bS | a
这是有效的,因为状态 S、R、T 和 U 对应于看到 b 的 0、1、2 和 3 个实例,模 4。 b 带你到下一个状态。因为状态 u 正在接受我们添加 U -> e,然后以通常的方式删除空产生式。
我被要求编写在字母表 Z={a,b} 上生成以下语言的语法 M={w | w 中 b 的个数是 3 模 4}
我的答案是
S->bP| bJ | aS
P->bQ | bK | AP
Q->bR | bL | Q
R->bS |电子 | aS
L->e
这行得通吗? 我们可以做得更好吗?
不确定 J、K 和 L 是什么。但是,是的,您可能会做得更好;具有 4 个状态的 DFA 可以识别您的语言,因此肯定存在具有四个非终结符的常规语法:
S -> aS | bR
R -> aR | bT
T -> aT | bU | b
U -> aU | bS | a
这是有效的,因为状态 S、R、T 和 U 对应于看到 b 的 0、1、2 和 3 个实例,模 4。 b 带你到下一个状态。因为状态 u 正在接受我们添加 U -> e,然后以通常的方式删除空产生式。