常规语言在连接时关闭 - 这可以通过将一种语言的接受状态与epsilon过渡到下一种语言的开始状态来证明。
如果我们考虑语言L = {a ^ n | n> = 0},这种语言是常规的(它只是一个*)。如果我们用另一种语言连接它L = {b ^ n | n> = 0},这也是常规的,我们最终得到^ nb ^ n,但我们显然知道这不是常规的。
我的逻辑错在哪里?
答案 0 :(得分:3)
两种语言L 1 和L 2 的串联定义是所有字符串wx的集合,其中w∈L 1 和x∈L 2 。这意味着L 1 L 2 由通过配对L 1 中的一个字符串和来自L 2的一个字符串形成的所有可能字符串组成,不一定与配对来自每种语言的匹配字符串相同。
因此,正如@Oli Charlesworth指出的那样,你在这里找到的语言实际上并不是{a n b n |在N}中。相反,它是语言{a n b m | N中的n和N}中的n,即语言a * b *。这种语言是常规的,因为它是由常规语言提供的。
希望这有帮助!