【问题标题】:Build a regular grammar for a regular language为常规语言构建常规语法
【发布时间】:2014-05-15 12:35:43
【问题描述】:

语言是由下一个条件定义的无限链集。

条件:

1) The language chains may consist of symbols from the set {1,a,b}. 
2) The language chains always start from subchain '1a'.
3) Every languange chain has to include at least one subchain 'aa'.

例如:

1aa, 1abaa, 1aaab, 1aab1a, ... etc.

形式语言中的正则表达式似乎是这样的: 1a ((1+b)* a)* (a (1+b)) a (1+b+a)*

该语言的正确正则语法是什么?

我想了很多方法,但对我来说似乎太复杂了。我猜这个解决方案也不正确。

G ({1,a,b}, {A,S}, P, S)
P:
S -> 1S|bS|aA
A -> 1A|bA|1a

【问题讨论】:

    标签: regular-language


    【解决方案1】:

    正则表达式应该比你做的更容易;怎么样:1a (1+a+b)* aa (1+a+b)*

    鉴于此,正则语法也不错:

    S := 1R
    R := aT
    T := 1T
    T := bT
    T := aU
    U := 1T
    U := bT
    U := aV
    V := 1V
    V := aV
    V := bV
    V := 1
    V := a
    V := b
    

    如果我没有犯愚蠢的错误,应该这样做。

    【讨论】:

      猜你喜欢
      • 2013-09-13
      • 2016-08-03
      • 2020-10-16
      • 2012-02-27
      • 2020-06-13
      • 2021-07-07
      • 2012-02-16
      • 2022-06-30
      • 2012-01-02
      相关资源
      最近更新 更多