我试图压缩一系列非负数,其中:
每个号码只出现一次(这意味着总共有2 ^ N个号码)
N = 4的示例:
[14,1,8,2,12,6,0,10,4,13,5,7,15,9,3,11]
因此通常每个数字将花费4位,对于16个数字,我们将不得不使用16x4 = 64位来存储它们.
目前我刚想到压缩它们如下:
所以压缩的数据大小将是:
Z = 8 * 4 + 4 * 3 + 2 * 2 + 1 * 1 + 1 * 0 = 49 bits
Run Code Online (Sandbox Code Playgroud)
压缩率约为76%,这是相当不错的(我认为).
但是对于较大的N值,该比率似乎会降低(对于N = 2048,该比率仅为91%)
所以我想听听你有关更好压缩的建议.
谢谢.
我想压缩一个整数列表,其中:
"出现"统计数据如下
所以请告诉我压缩这类数据的最佳方法(估计压缩比 - 如果可能的话 - 非常感谢).