设L是由字母{0,1}上的字符串组成的语言,包含相同数量的1和0。
例如:
000111
10010011
10
1010101010
如何证明L不是常规语言?
答案 0 :(得分:3)
我认为你可以使用完全相同的参数来表示{0 ^ n 1 ^ n:n> 0}不规则,因为你可以自由选择与泵浦引理相矛盾的字符串。
假设L是正常的。因此它必须满足某些整数n(泵送长度)的泵浦引理。取字符S=0^n 1^n
,属于L.根据引理,它可以被分为S=xyz
,|xy| <= n
,|y|>0
和x y^i z
属于L,适用于所有i>=0
。请注意y
必须仅包含零。现在泵y
,你只是在字符串中添加零,这不再属于L.所以你有一个矛盾。所以L不规律。
答案 1 :(得分:0)
我不知道一个正式的证据,但直觉是你不能构造一个DFA来识别这种语言(考虑到它需要一个无限数量的状态来跟踪形式{{1}的字符串或类似的。)
答案 2 :(得分:0)
可以使用常规语言的抽取引理给出正式证据,如下所示:
假设语言是常规的。因此它必须满足const整数p的泵浦引理。设s
为任意数字为0和1的字符串。然后s可以分为3个部分x,y,z,使得|xy|<=p
,|y|>0
,然后是x(y^i)z
,其中i>=0
也应该属于L.
让我按如下方式划分字符串:
y
是字符串的一部分,它具有不等数量的0和1。x
可能是s
之前y
的子字符串。z
可能是y
之后的部分。现在,如果我通过取i = 0
“抽空”字符串,那么剩下的字符串将只有xz
,肯定会有不等数量的0和1不属于该语言升。
因此,我们已经达成了矛盾,因为我们之前认为L是规则的。
因此,这不常规。
如果对上述部分有点了解,请考虑一个例子。
令p为整数5.设0+1000+11101
为L中的字符串(+表示连接)
我将x设为“0
”,y为"1000"
,z为剩余部分11101
。
然后,如果我们使用x(y^i)z
执行i=0
,则剩余的字符串将是011101
,这不是L的一部分。因此不规则。
注意:该示例只是一个让您理解逻辑的示例。人们无法随机决定p的值。