我有一组非常大的二进制数组(100 ^ 3),每个数组的长度大约为1000.数组本身没有特定的模式;他们是随机的。我必须将它们全部相互比较,所以我不能依靠磁盘IO来减少内存占用。我知道存储0和1的最好方法是使用位数组(在Python中,为此目的有一个模块bitarray)。
有没有数学方法可以做得更好?我读了一些关于将大整数表示为素数幂列表的东西,但是1000位的十进制等值可能是一个非常大的数字,可能导致整数列表消耗的内存超过1000位。
答案 0 :(得分:1)
如果一系列位是真正随机的,那么你无法做任何事情来缩短它们。随机的固有属性是没有模式。因此,您无法缩短随机比特序列。