我有一个具有以下格式的数组:
P1
5 5
0 0 0 0 0
0 1 0 1 0
1 0 1 0 1
1 1 1 1 1
0 0 0 1 1
,我想使用霍夫曼顺序压缩此数组。我的问题是,是否有可能,因为当我通过霍夫曼算法进行搜索时,我发现只有多个字符,却没有类似的东西。
如果可能的话,我该怎么做?
我已经尝试过了:
def getBitString(file):
file = open(ficheiro, "rb").read()
string = ""
for byte in file:
print(byte)
string+=format(byte,'08b')
return string
我只将文件转换为二进制文件。我正在考虑要解决的问题,但是我被困住了,我需要一些帮助
答案 0 :(得分:1)
霍夫曼编码使用编码时从文本内部的字母到安全空间的字符概率。要使其正常工作,您将需要一个具有两个以上字符的字母。两个字符需要1位存储,编码时需要1位。那不会保证任何安全。
使用示例数据,您可以将每一行视为一个字符。但是,霍夫曼编码还有其他要求,即:字符必须重复,越好越好。只能有5个非重复字符。
在简单的25位编码情况下,霍夫曼编码将无济于事。重复数据可能更多。