【问题标题】:Is there a way to create a type 3 grammar for this language?有没有办法为这种语言创建类型 3 语法?
【发布时间】:2021-09-07 06:22:21
【问题描述】:

我正在尝试为这种语言找到最高类型的语法:

L={0^2n 1^(n-1)|n>=1}
我只能做到这一点:

S->00X
X->00X1|λ

这不是类型 3。我似乎无法弄清楚如何将其变为类型 3(如果可能的话)。

【问题讨论】:

  • 欢迎来到 Stack Overflow。请通过tour 了解 Stack Overflow 的工作原理,并阅读How to Ask 以了解如何提高问题的质量。然后查看help center,看看你可以问什么问题。您可能想删除此问题并改为在cs.stackexchange.com 上提问,但请先查看那里的帮助页面。
  • 您可以使用抽水引理来证明L 不是正则的。

标签: formal-languages


【解决方案1】:

你不能这样做,因为L 不是常规语言。

假设L 是常规的。让w = 0^(2p)1^(p-1) 为某个整数p>=1,这样|w| > p。此外,考虑字符串xyz,这样w = xyz|xy| <= p,这意味着xy 都是0 的序列(因为p < 2p)。根据抽水引理,xy^nz 中的任何形式为xy^nz 的字符串也是,但这意味着我们可以增加 0 的数量而不增加 z 中的 1 的数量。因此,我们认为L 是正则的假设一定是错误的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多