构造一个生成L = {a ^ p b ^ m c ^ n | n> = 0,m> = 0,p = m + n}的语法

时间:2016-02-15 04:38:08

标签: grammar automata

构造一个生成L:

的语法
  

L = {a ^ p b ^ m c ^ n | n> = 0,m> = 0,p = m + n}

直到现在我已经尝试了这么多:

S->A
A->aAb|B
B->aBc|epsilon

我的语法是对的吗?

1 个答案:

答案 0 :(得分:1)

我不能给出数学证明,但让我们尝试枚举你的语法可以产生的字符串:

ε,ac,aacc,aaaccc,...(更多相同的a和c),ab,aabb,aaabbb,...(更多相同的a和b),aacb,aaaccb,aaacbb,aaaaccbb ,...(更多#a与#b + c相同)

现在:

a^p b^m c^n

表示必须严格履行订单?即第一个然后是b然后是c。如果是的话,你可以看到自己b和c实际上是用你的语法交换的。