问:1G文本文件能压缩到多少大小?

答案是 1MB,压缩到.7Z
我的一个软件每次编译前就自动备份一次,这种有大量重复内容,竟然压缩到 1000/1,也是蛮惊奇的

看情況

如果文件裡全部都是 “A”,例如 “AAAAAAAAAAAA…”

那麼壓縮就很容易,怎麼壓都會很小

有一種類電腦病毒,叫 Zip 炸彈
找到一種是 壓縮檔46 MB,解壓變4.5 PB
直接把硬碟容量塞爆

正是因为有大量重复内容,压缩率才能达到如此之高。
压缩率主要看文件的熵(即内容的重复度)。如果文件的熵很小(即内容几乎完全重复),您可以用最简单的算法把任意大的数据压到1MB之内

2 Likes

你的内容可以用程序生成的话,就可以压缩到这个程序的二进制大小。

好像是叫类似“生成式压缩”的名字。在某些游戏大赛里面就可以看到压缩到几十kb的3D游戏。

你看下无损压缩如何实现的就知道了

这个问题没什么意义。压缩后的体积只和信息熵有关,和体积没有关系。

1 Like

视这个文本文件的内容而定,也就是所谓的熵有多大。
如果是1024×1024×1024×1024个相同字符,例如“1”,那么理论上可以压缩成“1099511627776”这样一个13个字符大小。甚至是"1G"这样2个字符…
哈哈,有点抬杠了,就算一个脑洞吧。

不需要7z,用文件系统的透明压缩都能压到很小