【问题标题】:Calculating size of a theoretical text file计算理论文本文件的大小
【发布时间】:2012-12-14 15:51:23
【问题描述】:

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

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

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

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

【问题讨论】:

  • 计算熵是可能的(即使是自动化的,也很容易)。不过,需要检查文件的全部内容。 (如果我们知道值的范围,可能会高估:最小值和最大值是多少?)
  • 最小为0,最大为420267733这里计算gist.github.com/4287201

标签: compression theory filesize floppy


【解决方案1】:

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

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

希望这会有所帮助!

【讨论】:

    【解决方案2】:

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

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

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

    更新:

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

    【讨论】:

    • 谢谢!我将不得不链接到软盘的概念:)
    猜你喜欢
    • 2018-10-25
    • 2013-10-08
    • 1970-01-01
    • 2016-12-19
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多