我想知道如何获得语言{0 ^ m 1 ^ m 2 ^ n |的制作n> = 0,m> N}。
这就是我所拥有的,我不确定它是否正确。如果我错了,请纠正我:
S -> 01A | 0B1A | 00B11A
A -> 2A | 2 | λ
B -> 01
谢谢。
答案 0 :(得分:0)
此语言不是上下文。这可以使用针对无上下文语言的泵浦引理来显示。你最终得到五个案件;其中三个案例仅抽取符号0,1或2中的一个;两个案例泵浦相邻的符号。注意你几乎可以做到这一点,除了我们可以选择字符串0 ^(p + 1)1 ^(p + 1)2 ^ p,即使你跨越0s和1s并均匀地抽出它们你仍然会失败m> n抽水时测试。
有更强大的语法而不是上下文。我们可以为这种语言生成一般语法。
S -> RT
R -> 0R1X | 01
X1 -> 1X
XT -> T2 | T
1T -> e
前两个节目产生0 ^ n(01)(1X)^ n T形式的字符串。
第三次生成产生0 ^ n(01)1 ^ n X ^ n T形式的字符串。它允许X在所有1之后“浮动”到右边。
最后两个产生产生形式为0 ^ n(01)1 ^ n 2 ^ m,m <= n的字符串。这些允许T“向左”漂浮在Xs之外,将每个X翻译成2或不翻译。