【发布时间】:2013-06-29 01:18:39
【问题描述】:
我在一本关于可计算性的书中读到这一点:
(Kleene's Theorem) 一种语言是规则的当且仅当它可以是 通过应用三个操作并集从有限语言中获得, 连接,重复有限次。
我正在与“有限语言”作斗争。
考虑这种语言:L = a*
它不是有限的。它是集合{0, a, aa, aaa, ...},显然是一个无限集合(0 = 空字符串)。
所以它是一种无限的语言,对吧?也就是“无限集”就是“无限语言”吧?
显然,a* 是一种常规语言。它是一种无限的语言。因此,根据 Kleene 定理,它不可能是常规语言。矛盾。
我很困惑。我想我不知道“有限语言”是什么意思。
【问题讨论】:
-
这可能更适合 math.stackexchange.com。自动机理论并没有真正参与编写程序。
-
IIRC,a* 只是常规语言,如果 a 是常规语言(注意,“a*”表示“a 中的所有元素”)。因此,这与 Kleene 定理并不矛盾。
-
Can be obtained from [not "is"] afinite languages by applying .. 虽然我以前没见过这样写.我希望阅读“字母表上的语言是常规的,如果它可以被有限自动机接受”或类似的。
-
你在看哪本书
repetition a finite number of times错了!一个很好的参考阅读Kleene's Theorem
标签: regular-language finite-automata formal-languages computability kleene-star