令L为常规语言。考虑以下L的构造:
重复(L)= {ww | w ∊ L}
前缀(L)= {u | ∃v:uv ∊ L}
后缀(L)= {v | ∃uuv ∊ L}
一半(L)= {u | ∃v:| v | = |你和uv ∊ L}
哪种L最适合您的上述回答?
(A) (a + b)*
(B) {ϵ,a,ab,bab}
(C) (ab)*
(D) {a n b n | n≥0}答案: (A)
解释:
一个反例可以一口气证明最后一个问题的所有结论,应具有以下特性:
- 由于问题的要求,L应该是规则的
- L应该是一个无限的字符串集,否则half(L)将是规则的
- L的语法中应该有多个字母,否则repeat(L)将是规则的。
所以,
- (a + b)*是支持最后一个问题的结论的完美例子。它是规则的,有多个字母,并且是一个无限的集合。
- {ϵ,a,ab,bab}是一个有限集,因此是错误的。
- (ab)*等同于c ∗,后者是一种字母语言,因此是错误的。
- {a n b n | n≥0}甚至不是常规语言,因此是错误的。
此解决方案由vineet purswani提供。
这个问题的测验