我正在阅读Wikipedia关于Kolmogorov复杂度的条目(由于这个问题),其中指出:
可以证明,任何字符串的Kolmogorov复杂度都不能比字符串本身的长度大几个字节。
除了字符串本身,您为什么还要描述它呢?
我正在阅读Wikipedia关于Kolmogorov复杂度的条目(由于这个问题),其中指出:
可以证明,任何字符串的Kolmogorov复杂度都不能比字符串本身的长度大几个字节。
除了字符串本身,您为什么还要描述它呢?
Answers:
Kolmogorov复杂度的确切值取决于选择用来表示字符串的语言。该语言必须是图灵完整的,所以不能将所有字符串表示为自己。
根据信鸽原理,如果至少有一个长度为的字符串比其自身的长度短,则也至少有一个长度为n的字符串比其自身的长度长。(表示是一种压缩算法。)
您可以使用一种描述语言,其中每个字符串的表示形式最多比其长度长一点:以一个表示“按字面打印”或“解释”的位开始每个表示形式。并非所有的描述语言都那么简单。
这里考虑的字符串描述是某些通用图灵机的输入。您可以将其视为C程序。该字符串hello world
不,本身形成一个C程序,但下面的人做:int main(int argc, char *argv[]) { printf("hello world"); }
。如您所见,开销是恒定的,但不是零。