字符串中A的常规语言

时间:2019-07-14 11:42:42

标签: computation-theory

L = {w | w€{a,b},a的数目可被2整除}是语言。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

语言是a和b的所有字符串的集合,其中a为偶数。这是一种常规语言,目标是为其生成常规语法。

除非您需要的常规语法是微不足道的,否则我建议始终先写下有限自动机,然后再将其转换为语法。将有限自动机转换为语法非常容易,而使用有限自动机解决此问题也很容易。我们将有两种状态:一种对应于看到偶数的a,另一种对应于看到奇数的状态。对应于看到偶数a的状态将被接受,而看到b不会导致我们改变状态。因此,DFA为:

       b         b
      /-\       /-\
      | V       | V
----->(q0)--a-->(q1)
        ^         |
        |    a    |
        \---------/

为此,可以通过将过渡记录为生产形式,使用状态作为非终结符并为接受状态包括空生产形式来形成常规语法:

(q0) -> b(q0) | a(q1) | e
(q1) -> b(q1) | a(q0)

为了完整起见,您可以在语法或自动机上运行其他算法,并获取正则表达式,例如:b*(ab*ab*)*(只是写下来,不确定是否正确,是否保留)作为练习)。