随机字符串应该是不可压缩的。
pi = "31415..."
pi.size # => 10000
XZ.compress(pi).size # => 4540
随机的十六进制字符串也会被显着压缩。但是,随机字节字符串不会被压缩。
pi 的字符串只包含字节 48 到 57。在整数上加上前缀代码,这个字符串可以被高度压缩。本质上,我通过以字节表示我的 9 个不同字符(或 16 个,在十六进制字符串的情况下)来浪费空间。这是怎么回事?
有人可以向我解释基本方法是什么,或者指出一些来源吗?