【问题标题】:Automata regular expression {0+1}*自动机正则表达式 {0+1}*
【发布时间】:2014-12-12 13:16:00
【问题描述】:

我是 Automata 概念的新手,并且在一些论文中我发现了 {0,1}*

  1. (0+1)*一样吗

  2. 我们也可以从(0+1)*生成101

  3. 我们可以从{0,1}*生成101
    如果 1) 答案是否定的

请任何人帮我解决这个困惑..

【问题讨论】:

  • 你能解释一下为什么 1 得到 NO @WhileTrueSleep

标签: regex automata


【解决方案1】:

如果它们都在计算机科学论文和计算理论书籍中找到,那么是的,它们很可能是相同的。

  • 在符号{0,1}*中,集合符号{0,1}用于表示“0或1”。

  • 另外,+ 也用于表示交替(例如JFLAP)。所以(0+1)也可以表示“0或1”。

  • | 也用于在理论计算机科学上下文中表示替换 (0|1)。这也是许多正则表达式引擎中的交替语法。

Kleene 星 * 在理论正则表达式(书籍、论文)和实际正则表达式库中具有相同的符号,表示前面原子的重复 0 次或多次。

由于它们的意思是“(0或1)重复0次或多次”,因此它们都可以生成语言101

正如@Bergi 在评论中提到的,当您看到在同一本书/论文中使用这两种语法时,您应该退后一步。例如,@paarandika 指出 + 在书/纸中实际上可以表示“重复一次或多次”,如果它是上标的话。

【讨论】:

  • (0+1)* 表示 {e,0,1,001,01,1111} (0|1)* 是否相同?
  • @TostackOverlow: (0|1) 是正则表达式库中交替的常用语法。不知道是不是用在纸上,但如果你看到的话,很可能它也和其他2个意思一样。
  • + 1,但请注意,如果它们出现在相同的论文或书籍中,那么它们的含义可能不同。
猜你喜欢
  • 1970-01-01
  • 2016-01-03
  • 2014-12-05
  • 1970-01-01
  • 1970-01-01
  • 2012-12-16
  • 2019-05-16
  • 1970-01-01
  • 2020-09-21
相关资源
最近更新 更多