教资会网络 | UGC NET CS 2017 年一月至三日 |问题 23
给定以下两种语言:
L1 = {a n b n | n≥0,n≠100}
L2 = {w ∈ {a, b, c}*| n a (w) = n b (w) = n c (w)}
以下哪个选项是正确的?
(A) L 1和 L 2都不是上下文无关语言
(B) L 1和 L 2都是上下文无关语言。
(C) L 1是上下文无关语言,L 2不是上下文无关语言。
(D) L 1不是上下文无关语言,L 2是上下文无关语言。答案: (C)
解释:语言 L1 = {a n b n | n ≥ 0, n ≠ 100} 是上下文无关的,因为我们将所有 a^n 推入堆栈并为每个 a^n 元素弹出所有 b^n 元素,因为我们可以只使用一个堆栈来比较所有 a 和 b。
但是语言 L2 = {w ∈ {a, b, c}*| n a (w) = n b (w) = n c (w)} 不是上下文无关语言,因为我们不能仅借助一个堆栈同时比较所有 a、b 和 c,为此我们需要多于一个堆栈在这里,这种语言 L2 成为上下文相关语言。
选项(C)是正确的。
这个问题的测验