我有一组n个整数,范围很小,为
我没有尝试使用哈夫曼编码,因为它是根据频率分配代码的(而我所有的频率都是相同的)。也许我错过了这种特殊情况的某些简单编码方式。
非常感谢您的帮助和指导。
PS:我已经在cs.stackexchange上发布过问题,但在此也发布一下,以获得更好的覆盖范围,抱歉。
[0,k)
,所有整数的频率都是相同的,为f
(因此序列的大小为n=f∗k
)。我现在正在尝试压缩该序列,同时提供随机访问(第i个整数是多少)。完成随机访问的时间不必是O(1)。我更感兴趣的是通过牺牲更高的随机访问时间来实现更高的压缩率。我没有尝试使用哈夫曼编码,因为它是根据频率分配代码的(而我所有的频率都是相同的)。也许我错过了这种特殊情况的某些简单编码方式。
非常感谢您的帮助和指导。
PS:我已经在cs.stackexchange上发布过问题,但在此也发布一下,以获得更好的覆盖范围,抱歉。
[0,k)
内,因此它们已经处于最小尺寸表示。但是我们并不是在谈论任意随机序列,因为它们全部具有完全相同的频率。 - Jonk = 256
并且数据完全随机,我会期望每个数值(大部分?)具有相同的频率。考虑到每个整数的8位表示,我认为它是不可压缩的,除非有其他冗余源。 - Dave Ragern_c / n * lg(n / n_c)
,其中n_c
是c的频率,而n是序列长度。在此情况下,对所有c来说n_c
是n / k
。 - jplot