You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java实现哈夫曼编码问题:输出结果与预期不符

Java实现哈夫曼编码问题:输出结果与预期不符

大家好,我最近在做哈夫曼编码的Java实现任务时遇到了问题,自己写的代码输出结果和题目给出的参考答案对不上,想请各位帮忙分析下原因。

问题背景

我们有一个包含7个符号的离散信源(DMS),符号为Xi(i=1,2,...,7),对应的概率分别是:

  • p1 = 0.37
  • p2 = 0.33
  • p3 = 0.16
  • p4 = 0.07
  • p5 = 0.04
  • p6 = 0.02
  • p7 = 0.01

按照要求,我先将这些概率按降序排列,再构建哈夫曼树,但运行代码后得到的编码结果和题目提供的表格答案不一致。

我的代码输出

1          0.37         1.4344          0
2          0.33         1.5995          11
3          0.16         2.6439          101
4          0.07         3.8365          1000      
5          0.04         4.6439          10011
6          0.02         5.6439          100101
7          0.01         6.6439          100100

预期的正确结果

题目给出的正确编码结果(原内容略有截断,核心差异为编码序列与上述输出不同,比如符号2的编码应为10、符号3的编码应为11这类不同组合)

我的疑问

我是按照哈夫曼编码的常规步骤实现的:排序概率、合并最小概率节点、生成编码,但结果却和参考值有出入。是不是构建树的过程中有些细节没处理对?比如合并节点的顺序、给子树分配0/1的方向,或者排序时的稳定性问题?

备注:内容来源于stack exchange,提问作者Blahblah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:08:04