【问题标题】:Quick/Simple Regex/Regular Language Clarification快速/简单的正则表达式/常规语言澄清
【发布时间】:2011-04-12 18:55:06
【问题描述】:

我觉得在这里发布如此简单的问题就像个白痴,但这个网站的知识库真是太棒了。感谢您的理解。

关于寻找正则表达式的最小泵送长度(关于正则语言的泵送引理)的问题:

正则表达式 R = 1011(在字母表 {0,1} 上)

不是这个字符串 ε(空字符串)和 1011 的唯一匹配项吗?

编辑-我一直盯着太多的 kleene 明星。空字符串 ε 不是这种语言。

正则语言的属性表明,如果一种语言可以用一个有限自动机(或正则表达式)来表示,那么它就是正则的,当然这个语言也可以用两者来表示。 (而且这个问题显然让我相信语言是常规的)

但另一方面,抽水引理(非正式地)指出,所有常规语言都有抽水长度,因此至少该长度的所有字符串都可以拆分为 xyz,其中 y 可以重复而不影响结果。 ε 不能按定义泵送,并且 1011 不能泵送(我不认为,这是问题)因为没有其他字符串匹配它,因此删除或添加 y 的实例将导致字符串不被接受/匹配。

我的逻辑错误在哪里?

第二次编辑-任何 p>4 的答案,可以通过将 x 或 y 或 z 设置为 φ(空集)来抽取语言,当与任何东西连接时会导致空集?

【问题讨论】:

  • 为什么ε 包含在您的语言中?我错过了什么吗?
  • 你是对的。谢谢。

标签: regex regular-language pumping-lemma


【解决方案1】:

抽水引理对有限语言来说并不太有用。所有最终语言都是常规语言 - 例如,在您的情况下,您可以将“泵送长度”设置为 4。在空洞的意义上,所有超过该长度的单词都可以被泵送:)

【讨论】:

  • 另一条评论是,抽水引理对于证明语言不是正则更有用。稍后我会将其编辑为答案,但我需要去。祝你好运!
  • 但要抽出任何字符串,需要将其拆分为 xyz,其中(除其他条件外),y =/= ε。我假设答案是抽水引理的某种漏洞属性。
  • @prelic - 如果有 0 个单词,您可以放心地说 all 个单词满足条件。是的,从某种意义上说,我有点曲解了,但我们在学习逻辑时就这样做了。
  • @Kobi-但是有 1 个词,即 1011...你是说所有长度 > 4 的词吗?
  • @prelic - 是的。你可以对每一种有限的语言提出同样的要求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多