如果L的字符串由0组成,则仅证明L *是规则的

时间:2019-03-22 13:42:55

标签: regular-language automata

Hopcroft和Ullman撰写的“自动机理论导论”中的问题4.2.10。原始语言L也可以是非常规语言。

假设我们有一个0 ^(2 ^ n + 5),n> = 0的函数,您如何证明(0 ^(2 ^ n + 5))*是规则的?而且对于更一般的情况,f(0)何时可以是任何函数?

1 个答案:

答案 0 :(得分:0)

假设L包含两个字符串0 ^ n和0 ^ m,并且n和m没有共同的因素:它们是相对质数。然后,通过将一定数量的0 ^ n实例与一定数量的0 ^ m实例级联,可以形成任何长度为(n-1)(m-1)的字符串。因此,由于L *必须仅排除有限数量的单词,因此补数(L *)'必须是有限的,因此是规则的;因为常规语言在补码下是封闭的,所以L *也必须是常规的。

(n-1)(m-1)是哪里来的?好吧,这是coin problem的特例(n = 2),对此我们有一个封闭式解决方案。您应该能够对此进行研究并找到一些证明。

如果L中所有字符串的长度都可以被某些GCD整除,例如g,该怎么办?好吧,规律性的证明非常相似。考虑修改后的字母,其中用符号(0 ^ g)替换0,然后证明该字母上的类似语言如上所述是常规的。换句话说,您可以证明L *仅包含可被g整除的字符串,而所有可被g整除的字符串的长度至少为(n / g-1)(m / g-1),其中n和m为GCD g。该语言是常规语言,因为它仅排除了长度可被g整除的有限单词。