Kolmogorov复杂度:为什么您需要比字符串本身更多的字节?


Answers:


13

Kolmogorov复杂度的确切值取决于选择用来表示字符串的语言。该语言必须是图灵完整的,所以不能将所有字符串表示为自己。

根据信鸽原理,如果至少有一个长度为的字符串比其自身的长度短,则也至少有一个长度为n的字符串比其自身的长度长。(表示是一种压缩算法。)nn

您可以使用一种描述语言,其中每个字符串的表示形式最多比其长度长一点:以一个表示“按字面打印”或“解释”的位开始每个表示形式。并非所有的描述语言都那么简单。

CC


6

这里考虑的字符串描述是某些通用图灵机的输入。您可以将其视为C程序。该字符串hello world不,本身形成一个C程序,但下面的人做:int main(int argc, char *argv[]) { printf("hello world"); }。如您所见,开销是恒定的,但不是零。


3
另外,在C(或理想化的Turing-complete C)中,不可能以O(1)的空间开销打印任意字符串,因为字符串文字中的某些字符需要引用。
吉尔(Gilles)“所以,别再邪恶了”
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.