regex - 显示 count(1s) = count(0s) 的位串不规则

标签 regex algorithm regular-language automata proof

设 L 是由字母表 {0,1} 上包含相同数量的 1 和 0 的字符串组成的语言。

例如:

000111
10010011
10
1010101010

如何证明 L 不是常规语言?

最佳答案

我认为您可以使用与证明 {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 不是正则的。

关于regex - 显示 count(1s) = count(0s) 的位串不规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10672996/

相关文章:

regex - 正则表达式中哪些特殊字符必须转义?

java - 匹配字符串中的所有字符,无论其在序列中的顺序如何

c++ - 将 2x32 位大整数除以 1000

regex - 寻找 DFA 的补充?

regex - 识别在字符串中查找匹配项时使用 Perl 正则表达式的哪一部分

java - 如何使用正则表达式匹配一个字符串中所有可能的情况?

c++ - 如何更新对象的属性?

C++:列出字符串的排列

regular-language - RE : Odd length string over { 0, 1} 恰好包含两个 0

regex - 词法分析器中标识符的正则表达式帮助