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

📅  最后修改于: 2021-09-27 05:51:48             🧑  作者: 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)

因此,|钠 (w) | = 3。

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

S → baA
S → babA

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

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

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