📜  门| GATE-CS-2004 |第88章

📅  最后修改于: 2021-07-02 16:08:49             🧑  作者: Mango

考虑以下语法G:

S → bS | aA | b
A → bA | aB
B → bB | aS | a 

令Na(w)和Nb(w)分别表示字符串w中的a和b的数目。由G产生的语言L(G)⊆{a,b} +为
(A) {w | Na(w)> 3Nb(w)}
(B) {w | Nb(w)> 3Nb(w)}
(C) {w | Na(w)= 3k,k∈{0,1,2,…}}
(D) {w | Nb(w)= 3k,k∈{0,1,2,…}}答案: (C)
说明:在这里,我们有

S → bS
S → baA         (S → aA)
S → baaB     (A → aB)
S → baaa     (B → a)

因此, Na(w)| = 3。

另外,如果我们使用A→bA而不是A→aB,

S → baA
S → babA

要终止A,我们必须使用A→aB,因为只有B终止于(B→a)。

S → baA
S → babA
S → babaB
S → babaa

因此,在这里,| Na(w)| = 3。
因此,C是正确的选择。
如果您在以上文章中发现任何错误,请在下面发表评论。这个问题的测验