代码之家  ›  专栏  ›  技术社区  ›  Manjitha Teshara

等符号频率的哈夫曼码

  •  0
  • Manjitha Teshara  · 技术社区  · 6 年前

    从这些频率开始:

    A:7 F:6 H:1 M:2 N:4 U:5

    在后面的步骤中,我有5 6 7 7,其中一个7是“A”。我选择哪个7分支是0或1是任意的。

    那么,如何获得唯一可解码的代码字呢?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Mark Adler    6 年前

    您需要将代码发送到接收器,而不是频率。你可以任意分配 0 S和 1 将发送给所有分支,然后将每个符号的代码发送到编码符号之前。有许多可能来自同一组频率的哈夫曼码。

    通常只发送每个符号的位代码长度。在这种情况下,这些是 A:2 F:2 H:4 M:4 N:3 U:2 . 然后一个 canonical code 用于仅取决于长度的两端。在这种情况下,从 s,规范代码是:

    A: 00
    F: 01
    U: 10
    N: 110
    H: 1110
    M: 1111
    

    其中等长代码按词典编纂顺序分配给符号。注意,不需要建造哈夫曼树。所需要的只是每个符号的位数。

    推荐文章