2

我正在写一篇关于人口普查局到 2060 年的人口预测的文章,该文章在未压缩时包含一个 3.3 MB 的 .csv 文件。

该文件由 539,781 个值组成,每个值是 5-7 位,占用 3,455,372 个字符。当我 gzip 文件时,它下降到 1550063 字节,即 1.47 MB​​。

我希望能够如实说明它可以安装在 3.5 英寸软盘上,最大容量为 1.44 MB。这只是一个参考点,而不是给需要说明如何操作的用户的建议。

有没有办法根据上面的字符数计算文本文件的理论大小?如果我们真的有一张 3.5 英寸的软盘和一个驱动器,是否有可能在不丢失信息的情况下将这个文件放在磁盘上?谢谢!

4

2 回答 2

2

不,不可能仅根据文件的字符数来估计文件压缩版本的大小。不同的字符串可以以不同的效率进行压缩;纯由一个字符组成的字符串比纯随机生成的字符串更容易压缩。

在信息论中,有一个 Kolmogorov 复杂度的概念,它(或多或少)是重构字符串所需的最少信息量。并非所有字符串都可以压缩成更小的字符串,并且不可能建立一个通用算法来找到任意字符串的 Kolmogorov 复杂度。此外,一旦字符串足够长,就不可能证明您已经找到了字符串的最佳编码。

希望这可以帮助!

于 2012-12-14T17:53:01.827 回答
1

如果您想说它适合 1.44 MB 软盘,那么只需使用更好的压缩器来证明它。尝试 7-Zip 或 xz(取决于您的平台)。你已经足够接近了,我相信这会成功。(你使用 gzip -9 吗?)

顺便说一句,我不确定它的实用性,因为当你向他们描述这个“软盘”东西时,很多人都不知道你在说什么。

如前所述,是否不可能计算出理论上的最佳压缩率。只需使用最好的压缩机来进行估算。

更新:

下载了它。xz 将其压缩为 1177180 字节。所以是的,它适合。

于 2012-12-14T19:47:59.540 回答