【发布时间】:2011-03-16 18:10:01
【问题描述】:
这是一个理论问题,所以这里的许多细节在实践中甚至理论上都无法计算。
假设我有一个要压缩的字符串s。结果应该是一个自解压二进制文件(可以是 x86 汇编程序,但也可以是其他一些假设的图灵完备的低级语言),输出 s。
现在,我们可以轻松地遍历所有可能的此类二进制文件和程序,按大小排序。让B_s 成为这些输出s 的二进制文件的子列表(当然B_s 是不可计算的)。
由于每组正整数都必须有最小值,所以B_s中一定有一个最小的程序b_min_s。
我们知道b_min_s 的大小对于哪些语言(即字符串集)?也许只是一个估计。 (我可以构建一些简单的例子,我什至可以计算 B_s 和 b_min_s,但我对更有趣的语言感兴趣。)
【问题讨论】:
-
我回想起过去的一些非常聪明的程序,例如多次覆盖自身的引导加载程序。很可能,为了实现自解压程序的最小总体大小,该程序可以以某种方式利用自己的文本——例如,作为常量的来源。
标签: compression