我试图为该语言制作一个CFG:
我这样做了:
S -> a S b b
S -> epsilon
它符合要求,但它是否正确?
答案 0 :(得分:1)
如果我想要abbb
怎么办? n
为1,因此2n
为2,4n
为4,m
为3,因此为2n <= m < 4n
。如果你的意思是&#34;它是否创造了语言中的所有单词&#34; as&#34;是正确的&#34;,然后不,它没有。此外,您正在创建epsilon
(零a
和零b
),但2*0 <= 0 < 4*0
不正确,因为零不小于零(第二部分)比较)。
您的语法只创建b
比a
多两倍的单词。但是,该语言还包含其他字词 - 您需要的b
(包括)和b
的{{1}}比a
少2倍。例如,对于n = 2
,您的m
可以是4,5,6或7。