微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

霍夫曼编码丢失的信息

如何解决霍夫曼编码丢失的信息

我使用 this JS-library 进行霍夫曼编码。它在某些字符串上失败,如以下示例 (RunKit) 所示:

train = "[1300 [[57 4.56 0.12 11 10260 240] [8.600000000000001 5.2 0.44 44 16447 142] [8.600000000000001 240.8 0.08 12 930] [8.600000000000001 0.16 4.63 230 1080] [8.600000000000001 482.1 2.82 490 572] [8.600000000000001 135.1 28.67 820 1185]]]"

troublesomeInput = "[1300 [[56 4.56 0.12 11 10260 240] [44 5.2 0.44 44 16447 142] [0 240.8 0.08 12 930] [0 0.16 4.63 230 1080] [0 482.1 2.82 490 572] [0 135.1 28.67 820 1185]]]"

let Encoder = huffmanUrlCompressor.createEncoder(train);

let encodedParam = huffmanUrlCompressor.encodeConfig(troublesomeInput,Encoder)

let decodParam= huffmanUrlCompressor.decodeConfig(encodedParam,Encoder)

decodParam 结果为:

[1300 [[56 4.56 0.12 11 10260 240] [44 5.2 0.44 44 16447 142] [0 240.8 0.08 12 930] [0 0.16 4.63 230 1080] [0 482.1 2.82 490 572] [0 135.1 28.67 820 1185]]

如您所见,尾括号在此过程中丢失了。我在这里做错了什么还是错过了霍夫曼算法应该做的事情?或者我应该将此报告为图书馆的问题?

解决方法

就目前而言,这很可能表明我正在使用的库存在错误。我现在打开了一个 issue on the library's GitHub page。我会在获得更多信息后更新此答案,但暂时将其关闭。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。