Python 压缩二进制数

Python 压缩二进制数,python,binary,compression,bit,Python,Binary,Compression,Bit,我有一个40位唯一二进制数的列表,我想把它压缩成小于40位的形式。因为每个数字都是唯一的,所以我不能使用像哈夫曼编码这样的技术。你知道我可以使用哪种算法才能有效地得到结果吗?你能再多说一下它是什么类型的整数列表吗?例如,您是否希望整数形成一些连续的范围?或者更可能是某个数字的倍数?像这样的吗?我有50个二进制数字字符串,它们是递增的,因为它们表示累积分布表值的小数点后的部分。所以,这些二进制数表示0到1之间的值。它确实使每个连续值的可能值集更小,并且可以使用(例如使用混合基数表示),但我希望不会

我有一个40位唯一二进制数的列表,我想把它压缩成小于40位的形式。因为每个数字都是唯一的,所以我不能使用像哈夫曼编码这样的技术。你知道我可以使用哪种算法才能有效地得到结果吗?

你能再多说一下它是什么类型的整数列表吗?例如,您是否希望整数形成一些连续的范围?或者更可能是某个数字的倍数?像这样的吗?我有50个二进制数字字符串,它们是递增的,因为它们表示累积分布表值的小数点后的部分。所以,这些二进制数表示0到1之间的值。它确实使每个连续值的可能值集更小,并且可以使用(例如使用混合基数表示),但我希望不会保存很多位(除非序列很快接近1.0)。还有其他有用的财产吗?也许我们可以得到一个很好的“适合”的CDF(在一些函数,可以表示在几个位,可能是一个二次曲线,有0和1作为端点,所以只有一个点在中间,我们可以把它绑起来),然后对预测的偏差进行编码?我现在想不出任何其他的属性了,你能再多说一下它是什么类型的整数列表吗?例如,您是否希望整数形成一些连续的范围?或者更可能是某个数字的倍数?像这样的吗?我有50个二进制数字字符串,它们是递增的,因为它们表示累积分布表值的小数点后的部分。所以,这些二进制数表示0到1之间的值。它确实使每个连续值的可能值集更小,并且可以使用(例如使用混合基数表示),但我希望不会保存很多位(除非序列很快接近1.0)。还有其他有用的财产吗?也许我们可以得到一个很好的“适合”CDF(在一些函数中可以表示为几位,也许是一个二次曲线,它有0个和1个端点,所以中间只有一个点,我们可以把它绑起来),然后编码偏离这个预测?我想不出任何其他财产了。