一千个读者有一千个哈姆雷特

如何判断一段话的复杂度?

GoodQuestion.
从直观直觉来说,我们往往看到一个有规律的字符串时,往往认为它的复杂度是低的。
例如00100001000011000011,但如果是无规律的例如abpodjibnsbgvauvqa这样的字符串,要先展现或者记忆它,方法往往只有完整的从头到尾记录罢。

柯尔莫哥洛夫复杂度

柯尔莫哥洛夫提出了柯尔莫哥洛夫复杂度(Kolmogorov complexity),就是能描述一个字符串最简短算法的长度。
即,如果能用一段简短的代码去描述其中的字符串的规律,即使字符串再长,它的柯尔莫哥洛夫复杂度也是低的。
不由得想到这个原理类似哈夫曼编码,字符串的长度往往不影响其复杂度,而其规律性和概率性才是真正的关键。

每个字符串都有其柯尔莫哥洛夫复杂度的值。而艺术作品,乃至我们写的程序也是。
有些电影值得二刷三刷,而有的看看电影博主5分钟的简介即可。有些音乐旋律单一,而有些音乐让人感觉走过来人生的风风雨雨亦或身临其境,感慨万分。
我们写的有些程序,简单的逻辑重复在各个函数,不太值得细品。而我们看例如Linux系统的源代码,看到实现巧妙的函数,构思令人称奇的宏,好像是真正感悟CS这个领域的魔力。

然而,柯尔莫哥洛夫指出我们无法计算他的复杂度。即最短描述实际上不可计算。

我们可以找到一种算法来描述一个字符串,但是永远也找不到最佳(最短描述)的模式。即我们不知道我们总结的模式或者规律是不是最好的,最精辟的。

Conclusion

这个定理或是理论让我们既失望又充满希望。
它说明了文学作品应当存在多种解读。阅读理解也不存在真正的标准答案。正好比一千个读者有一千个哈姆雷特

  • 就算电影的情节和音乐的旋律能够用尽,对艺术的理解也没有止境
  • 我们对世界和人生总结出的规律和经验,并没有我们自认为的那样完美,其中仍然可能存在更深层次的真理。我们不能确定我们是不是找到最优解,但可以确定的是,我们对艺术和宇宙的探索将会永无止境。

柯尔莫哥洛夫复杂度

你可能感兴趣的:(一千个读者有一千个哈姆雷特)