我正在写一篇关于人口普查局到2060年的population projections的文章,它由一个3.3MB的.csv文件组成。
该文件由539,781个值组成,每个值5-7位,长度为3,455,372个字符。当我对该文件进行gzip压缩时,其大小为1550063字节,即1.47MB。
我希望能够如实地说,它将适合3.5英寸的软盘,最大容量为1.44MB。这只是一个参考点,而不是对用户的建议,需要说明如何做到这一点。
有没有办法根据上面的字符数来计算文本文件的理论大小?如果我们真的有一张3.5英寸的软盘和一个驱动器,有没有可能在不丢失信息的情况下将这个文件放到磁盘上?谢谢!
发布于 2012-12-15 01:53:02
不,不能仅仅根据文件的字符数来估计压缩版本文件的大小。可以以不同的效率级别压缩不同的字符串;纯由一个字符组成的字符串比纯随机生成的字符串更容易压缩。
在信息论中,有一个Kolmogorov复杂度的概念,它(或多或少)是重建字符串所需的最小信息量。并不是所有的字符串都可以压缩成更小的字符串,而且不可能建立一个通用的算法来计算任意字符串的Kolmogorov复杂度。此外,一旦字符串足够长,就不可能证明您已经找到了字符串的最佳编码。
希望这能有所帮助!
发布于 2012-12-15 03:48:00
如果你想说它适合一个1.44MB的软盘,那么就用一个更好的压缩器来证明它。尝试7-Zip或xz (取决于您的平台)。你已经足够接近了,我相信这会成功的。(您是否使用了gzip -9?)
顺便说一句,我不确定这有什么用,因为当你向许多人描述这个“软盘”的东西时,他们根本不知道你在说什么。
如前所述,不可能计算出理论上的最佳压缩。只要使用最好的压缩器就可以得到一个估计。
更新:
已经下载好了。xz将其压缩为1177180字节。所以,是的,它很合适。
https://stackoverflow.com/questions/13881981
复制相似问题