【问题标题】:Give a Regular Language L [closed]给出正则语言 L [关闭]
【发布时间】:2013-05-22 18:44:02
【问题描述】:

给出 L= {a^n b^n : n 的正则文法

我会做这样的事情:

s---> 一个 |空字符串

A---> aB|空字符串

b---> Ab

但是我们如何计算语法中的数字呢?意思是它如何知道何时有超过 100 个 a。我什至不确定我的方式是否有意义。

任何帮助将不胜感激。

【问题讨论】:

  • 如果一种语言是有限的,那么您必须像 Sirko 那样编写(长语法),在他的回答中暗示别无选择。此外,您的语法是不规则的上下文无关语法,请阅读:Why this is not regular language?

标签: computer-science theory discrete-mathematics automata


【解决方案1】:

由于这种语言的成员显然是有限的,您可以将它们作为所有可能情况的列表:

S -> ab | aabb | aaabbb | ... | a^100b^100

【讨论】:

    【解决方案2】:

    假设 S 是开始符号:

    1) S -> aXb
    2) X -> aXb 
    3) X -> ab
    

    我可以证明这是可行的:
    1) S -> aXb
    2) aXb -> a aXb b
    ... (n-3) 次

    a^(n-1) X b^(n-1) -> a^n b^n(使用第三条规则,X -> ab)

    【讨论】:

    • 这不会处理n<=100 部分。
    • 另外,这是一种上下文无关文法,而不是常规文法。
    猜你喜欢
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 2016-08-25
    • 2017-03-13
    • 2019-12-05
    • 2021-12-21
    • 2019-04-03
    • 1970-01-01
    相关资源
    最近更新 更多