我从一组 13 种数据中抽取了 13 个数字,每种类型有 4 项,所以总共 52 项。我们可以将项目编号为 1,2,3,4,5,6,7,8,9,10,11,12,13,所以会有 4 个“1”,4“2”,... 4集合中的“13”。从集合中抽取的 13 个数字是随机的。整个过程重复了百万次甚至更多,所以我需要一种有效的方法来存储这 13 个数字。我正在考虑使用某种编码方法将 13 个整数压缩成位。例如,我计算有多少“1”、“2”……首先,用 2 位对每个项目的计数进行编码,然后再使用 1 位来表示项目是否被绘制。所以对于每个项目,我们需要 3 位,总共 13 个项目需要 39 位。这样做肯定需要 8 个字节。但这仍然太多了,因为我说的是几百万或十亿次计算,并且每个集合都必须稍后存储到文件中。因此,如果我使用 8 个字节,我的数据仍然会询问大约 80GB。但是,如果我可以将其减少一半,我将节省 40GB。知道如何更有效地压缩这种结构吗?我也想用 5 个字节代替,但我需要处理不同类型的数字(一个 int + 一个 char),c++ 中是否有任何库可以轻松地为我进行编码/压缩?知道如何更有效地压缩这种结构吗?我也想用 5 个字节代替,但我需要处理不同类型的数字(一个 int + 一个 char),c++ 中是否有任何库可以轻松地为我进行编码/压缩?知道如何更有效地压缩这种结构吗?我也想用 5 个字节代替,但我需要处理不同类型的数字(一个 int + 一个 char),c++ 中是否有任何库可以轻松地为我进行编码/压缩?
谢谢。