编码最有效的方式64字符序列,以减少写入内存的时间

时间:2013-12-12 13:14:31

标签: performance encoding

问题如下:鉴于64个字符序列是由英语字母表构建的,因此只有大约26个字符字符,因此事件分布使得任何字符在给定时间具有相同的发生机会。

由于我需要对序列进行一些计算,这需要写入文本文件,因为序列的数量超出给定的ram。我想过对一个序列进行编码,这样我就可以有更少的字节来写入每个给定序列的文本文件。

有了这样的推理,我想到了L-Z,它可以让我减少到40个字节。有什么方法可以降低编码64个字符的序列吗?

1 个答案:

答案 0 :(得分:0)

使用大型(-ish)查找表,您可以对26^64(实际301)位中的每个可能的300.8281==log2(26^64)字符序列进行编码。这略小于您的直接压缩将使用的320位。如果26个字符中的任何一个以相同的概率出现,那么这也是理论上的最小值。

由于您可以随时派生查找表,甚至不需要存储它。我想用于表示将字符串编码为301 - 位整数和反之亦然的函数的位应计入压缩比。

当然,这是对@ lhf评论的冗长重述。