答案 0 :(得分:0)
首先让我们清除一个常见的误解:(0+1)*
不是无限字符串。这是一种无限数量的有限字符串的语言。区别很重要:语言中给定的任何字符串都是有限的,但是它们的数目是无限的。
L=(0+1)*
的意思是L={'', '0', '1', '00', '01', '10', '11', etc}
。这也说明了如何列出一种语言,如果您列出所有长度为0,然后为1,然后为2,等等的单词,则该语言中的每个单词在此集合中都有位置,并且可以映射到自然数。
所有常规语言都是可数的单词集。有限的语言微不足道。无限语言是可数的,因为可以遍历相应的DFA,以有序的方式枚举整个语言,从而允许将所有字符串映射到自然数。
另外两个问题通常是数学而非计算机科学。这应该有所帮助:https://math.stackexchange.com/questions/1396896/number-of-non-decreasing-functions。对于最后一个问题,这可能会有所帮助:https://en.wikipedia.org/wiki/Cantor%27s_theorem