【问题标题】:Proof that a regular expression is not a regular language using pumping lemma使用泵引理证明正则表达式不是正则语言
【发布时间】:2016-03-18 01:22:17
【问题描述】:

好的,我知道这不是一个编程问题,而是一个计算问题,所以它是相关的。

基本上,我如何使用抽水引理来证明这种语言不是正则的?

{w in {0,1}* |如果 w 的长度为奇数,则中间符号为 0}

请尽可能简单地回答这个问题,虽然我知道计算模型,但我对它比较陌生。

非常感谢您!

【问题讨论】:

  • @templatetypedef 到目前为止我还没有尝试过任何东西。我知道抽水引理是什么,但我不知道如何将其应用于这种情况
  • “正则表达式不是正则语言”——这是不可能的正则表达式只能为正则语言编写。正则表达式是某种语言正则语言的证明。

标签: regular-language dfa pumping-lemma


【解决方案1】:

根据抽水引理,如果该语言是正则的,则必须存在一个数字 p 使得对于该语言中所有长于 p 的字符串,我们可以分解该字符串为 x + y + z,其中每个 x, y , 和 z 是字符串和 |y| >= 1,|x + y| p, x + (y * i) + z 是在所有非负整数的语言中i

现在观察对于每个非负整数 i,字符串 "1" * i + "0" + "1" * i 在语言中。 (即 i 1s 的字符串后跟一个 0 然后 i 更多 1s)

具体来说,字符串 Sp 1s 后跟 0 然后 p 更多 1s是在语言中。由于该字符串的长度为 2 p + 1,因此该字符串足够长,可以分成三个字符串 xy 和 z 就像在抽水引理中一样。由于 |x + y| p,一定是xy都是1s,中唯一的0字符Sz 中。现在考虑字符串 S' = x + y + y + y + z。由于我们添加了 2*|y|字符,S' 也必须有一个奇数长度。但是我们在 S 中唯一的0 的左侧添加了一些1 字符,并且没有在0 的右侧添加任何1 字符。所以 S' 没有 0 作为其中间字符,因此 S' 不在该语言中。

因此,我们已经证明该语言不能按照抽水引理的要求进行抽水。因此,语言不规则。

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 2011-02-07
    • 2013-11-18
    • 2011-01-31
    • 2020-07-11
    • 2020-09-18
    相关资源
    最近更新 更多