设 L ⊆ ∑* 其中 ∑ = {a, b}。以下内容哪些是对的 ?
(A) L = { x | x 具有相同数量的a和b } 是常规的
(B) L = { a n b n | n ≥ 1 } 是正则
(C) L = { x | x 的a比b 多} 是常规的
(D) L = { a m b n |米? 1, ? 1 } 是常规的答案: (D)
说明:对于选项(A):-
L = { x | x 具有相同数量的a和b } 对于相同数量的 a 和 b 是常规的 我们需要 s 堆栈来存储 a 的数量,我们将所有 a 推入堆栈并为每个 a 弹出所有 b 因此, a 不能是正则语言。
对于选项 (B):-
L = { a n b n | n ≥ 1 } 是正则也不是正则,与上述语言相同。这种语言还说,相同数量的 a 后跟相同数量的 b,因此它还需要一个堆栈来压入所有 a 并为每个 a 弹出所有 b。
对于选项 (C):-
L= { x | x 的a比b 多} 也不规则,这也是 CFL 我们需要在这里堆栈,因为 a 应该大于 b。
对于选项 (D):-
L = { a m b n | m ≥ 1, n ≥ 1 } 是常规语言,因为没有限制 a 和 b 的数量相等,这种语言只说 a 后面应该跟 b 因此我们可以为它绘制 DFA。
选项(D)是正确的。
这个问题的测验