代码之家  ›  专栏  ›  技术社区  ›  Aaron Fi

概念检查:任何无损数据压缩都会被“击败”,对吗?

  •  1
  • Aaron Fi  · 技术社区  · 15 年前

    http://en.wikipedia.org/wiki/Data_compression#Lossless_data_compression

    对于任何给定的压缩方案,都可以提供不会节省空间的示例输入,对吗?

    5 回复  |  直到 15 年前
        1
  •  5
  •   Ned Batchelder    15 年前

    是的,总有一些东西会变大。鸽子洞原理说,如果你有一个输入空间和一个1对1的函数(无损压缩),那么输出的数量必须和输入的数量相同。

    如果输入是n位的文件,则输入的数量为 2**N ,输出数量为 2×*N . 您不能将许多不同的输出存储在所有短于n位的文件中。

        2
  •  4
  •   Ben S    15 年前

    对于任何给定的压缩方案,一个 可以提供样本输入 不会节省空间,对吧?

    是的:一点点。

        3
  •  2
  •   whatsisname    15 年前

    当然。

    如果不是这样的话,你可以想象将压缩的输出再次输入到压缩机中,然后再填充以获得更好的压缩,直到你完全达到一个位为止。这显然是不可能的。

        4
  •  1
  •   Beep beep    15 年前

    对的。尝试压缩压缩压缩文件…如果数据已经被压缩,您将无法获得进一步的压缩。

        5
  •  0
  •   drakaan    15 年前

    “如果我给你一个整数流,你能一直压缩它们吗?”

    在“压缩压缩文件”示例中,为什么您认为压缩文件中的字节不是整数流?

    这是一个非常简洁的实例,当您可以“击败”无损数据压缩时。

    推荐文章