CFG为长度为3的字符串

时间:2018-02-16 11:01:12

标签: context-free-grammar computation-theory

我试图为以下语言创建无上下文语法:

  

L = {w∈{a,b} * | w的形式为^ nxb ^ n + 2,其中x是任何字符串   {a,b} *}

中的长度为3

(a升至n的幂,b升至n + 2的幂)

到目前为止我的解决方案是(_是epsilon):

S - > aSbb | T | _

T - > aT | bT | _

然而这是不正确的,因为它例如接受字符串abbb。我的问题是我不明白如何制作语法的T部分,我怎样才能将字符串限制为3的大小?在{a,b} *中列出长度为3的所有字符串是没有意义的,还是唯一的方法?

如果aSbb是正确的,我也不会100%自信,因为我认为我的解决方案现在是^ nxb ^ 2n,或者我错了?

1 个答案:

答案 0 :(得分:0)

该语言的正确CFG是:

S -> aSb | T  
T -> UUUbb  
U -> a | b

感谢大家的帮助!