L = {a * b *}会被归类为常规语言吗?

时间:2016-04-28 19:58:33

标签: regular-language computation-theory

L = {a * b *}会被归类为常规语言吗?

我很困惑,因为我知道L = {a ^ n b ^ n}不规律。克莱恩明星有什么不同?

2 个答案:

答案 0 :(得分:1)

如果您拥有L = {a^n b^n}L = {a*b*},那么这会有所不同。

如果您使用a^n b^n语言,则必须具有相同数量的a'sb's示例的语言:{aaabbb, ab, aabb, etc} 。正如你所说,这不是一个正则表达式。

但是当我们谈论L = {a*b*}时,它有点不同,你可以有任意数量的a后跟任意数量的b(包括0)。一些例子是:

{a, b, aaab, aabbb, aabbbb, etc}

正如您所看到的,它与{a^n b^n}语言不同,您需要具有相同数量的a'sb's

是的,a*b*本质上是正常的。如果你想要一个很好的解释,为什么它是常规的你可以检查How to prove a language is regular他们可能有更好的解释然后我(

我希望它能帮到你

答案 1 :(得分:0)

正则表达式a b 描述的语言是定义的常规语言。这些表达式不能描述任何非常规语言,而且确实是定义常规语言的方法之一。

另一方面,

{a ^ n b ^ n:n> 0}(这将是描述它的正式完整方式),不能用正则表达式来描述。直觉上,当到达a和b之间的边界时,你需要记住n。由于它没有界限,所以没有有限存储器件可以做到这一点。在 b 中,你只需要记住,从现在开始只会出现b;这是非常有限的。在某种意义上,这两颗恒星并不相关;每个都独立于另一个扩展其块。