1

所以我给定的 L = {(a^m)(b^n)(c^k)|m,n,k >= 0,并且 m=k、n=k 或 m=n}

我发现棘手的部分是m=k、n=k 或 m=n的最终规则。我无法完全找到将其纳入 CFG 规则的方法。关于(a^m)(b^n)(c^k)的第一部分,我相信这只是 a、b 和 c 的有序序列。看形式:aaaaabbbbbccccc

S0 = a|aS0|aS1|Epsilon
S1 = b|bS1|bS2|Epsilon
S2 = c|cS2|Epsilon

就像我说的,我认为我所做的上述尝试涵盖了初始形式,但没有翻译给定的规则。

我在想的事情是,我可以以这样一种方式来构建它,即 a&b 或 b&c 被统一添加。我想做的事情可能是:

S1 = aS1b

这样,当我们将aS1b放入S1时,我们会看到我们的 ab等价地增长:aaaS1bbb意味着mn可能相等。我无法弄清楚的是如何确保在语法中实现这一点。以这种方式使其成为可选的,但不是必需的。

有什么想法或技巧可以解决这个问题吗?

4

0 回答 0