所以昨天我在压缩整数序列的问题上提出了一个问题(链接),大多数评论都有一个相似的观点:如果顺序是随机的(或者更糟,数据完全随机),那么一个值k需要log2(k)位。我也在这个网站的其他问题中看到了类似的回复。现在,我希望这不是一个愚蠢的问题,如果我将该序列序列化到文件中,然后运行gzip,那么我确实可以实现压缩(并且根据我允许gzip运行的时间,我可能会得到高压缩)。能有人解释一下这个事实吗?
提前感谢。
提前感谢。
如果数据是真正的随机数据,平均而言,没有任何压缩算法能够对其进行压缩。但是,如果数据具有某些可预测的模式(例如,如果符号的概率取决于先前出现在数据中的k个符号),许多(基于预测的)压缩算法将会成功。
FileWriter
正在使用默认字符编码,因此你没有为每个16位char
写入的文件写入16位数据。你只写了2000000字节的随机数据,但是你的未压缩文件大小约为4.8M字节。 - Keith Randall