【问题标题】:Automata-Regular Expression自动机正则表达式
【发布时间】:2014-12-05 21:08:11
【问题描述】:

我在理解正则表达式时遇到问题。

我正在尝试这个练习:

在字母表 {a,b} 上,创建一个正则表达式:

A) 接受所有包含至少一次出现“a”或“b”的单词。

epsilon*(a U b )

B) 接受所有最多包含三个“a´s”的单词

C)所有以双字母结尾的单词(如abb ou abaa)

epsilon*(aa U bb)

D)单词恰好出现三个aaa(例如abaaab或baaab)

所以,正如你所看到的,我在使用正则表达式时遇到了很多问题,我做了 A 和 C,但我认为它们错了,B e D 我不知道该怎么做。

我可以帮忙吗..

【问题讨论】:

    标签: automata computation-theory


    【解决方案1】:

    A) Σ*.(a + b)
    B) b* + b*.a.b* + b*.a.b*.a.b* + b*.a.b*.a.b*.a.b*
    C) Σ*.(aa + bb)
    D) (a.b + a.a.b + b*)*.aaa.(b.a + b.a.a + b*)*

    你得到了 A) 和 C) 正确的想法。此外,它是字母表的 Sigma,而不是 epsilon。而且您不要在正则表达式中使用 U 。它用 + 符号表示。仅允许的操作是:
    ∅ - 空集
    ε - 空词
    a, b - 字母表中的终端
    + 统一
    * 用于 0+ 个符号
    .用于连接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      相关资源
      最近更新 更多