考虑 NPDA 〈Q = {q0, q1, q2}, Σ = {0, 1}, Γ = {0, 1, ⊥}, δ, q0, ⊥, F = {q2}〉,其中(按照惯例约定)Q 是状态集,Σ 是输入字母表,Γ 是堆栈字母表,δ 是状态转移函数,q0 是初始状态,⊥ 是初始堆栈符号,F 是接受状态的集合,状态转换如下:
以下哪一个序列必须跟在字符串101100 之后,以便自动机接受整个字符串?
(一) 10110
(乙) 10010
(三) 01010
(四) 01001答案:(乙)
说明:在 q0 状态中,’1′ 被压入了一个’1’,而一个’0′ 被压入了一个’0’。在 q1 状态下,对于“0”会弹出“1”,对于“1”会弹出“0”。因此,给定的 PDA 接受 x0x’r 或 x1x’r 或 xx’r 形式的所有字符串,其中 x’r 是 x 的 1 的补码的反向。
给定的字符串101100 有 6 个字母,我们有 5 个字母字符串。所以,x0 完成,x = 10110。所以,x’r = (01001)r = 10010。
因此选项B是正确的。
这个问题的测验