Regular language 我怎么能直接看出一种语言是不规则的

Regular language 我怎么能直接看出一种语言是不规则的,regular-language,formal-languages,Regular Language,Formal Languages,给定L={a^NB^NCN^n},我怎么能不看产生式规则而直接说这种语言是不规则的呢?我可以使用泵引理,但有些人只是说,看看语法,这不是一个正常的。怎么可能呢?你的字母表中有三个字符。它们都依赖于同一个变量:n。 现在,如果你只有两个,想象一下{a^n b^n}你可以很容易地用这个产品完成任务: S->ab | aSb 但是你有三个变量,没有办法把它们都链接到同一个变量上。您应该使用两种语法类别,但既然这样做了,它们就没有链接,您可以从它们中的每一个生成不同的字符串。链接它们的唯一方法是只使用一

给定L={a^NB^NCN^n},我怎么能不看产生式规则而直接说这种语言是不规则的呢?我可以使用泵引理,但有些人只是说,看看语法,这不是一个正常的。怎么可能呢?

你的字母表中有三个字符。它们都依赖于同一个变量:n。 现在,如果你只有两个,想象一下{a^n b^n}你可以很容易地用这个产品完成任务:

S->ab | aSb

但是你有三个变量,没有办法把它们都链接到同一个变量上。您应该使用两种语法类别,但既然这样做了,它们就没有链接,您可以从它们中的每一个生成不同的字符串。链接它们的唯一方法是只使用一个语法类别,这是不可能的

你不能这样做:

S->abc | aSbc

事实上,您不能在最后一个字符串中包含语法类别,因此这不是一个字符串。它需要再次转变。从那时起你能做什么? 你可以做:

亚BCBC

或者你可以:

aaSbcbc


第一个是字符串,它不是您的语言的一部分。第二个还不是字符串。但很容易看出,您无法从中生成任何允许的字符串。

您的意思是,我不能这样做:s->abc | aSbc,但在这种情况下,余额也没问题,我有n倍的a、b和c。但是为什么这是错误的呢?哦,我明白了,为了被语法所接受,顺序也是基本正确的吗?像aabbcc被接受,但不是aabcbc,只是因为订单不好。我说得对吗?没错!我没有意识到你对此感到困惑<代码>a^n b^n c^n意味着您将有n次a,然后是n次b,然后是n次c。现在,我希望它是清楚的。是的,现在我明白了。有许多小部分决定了整个事情是否清楚。。帮了大忙!谢谢你这个问题属于,答案给你提示和技巧。(技术3适用于此:使用Myhill–Nerode定理。)