跳到内容
← 全部问题

无前缀码(prefix-free code)的定义是什么?

无前缀码是指没有任何码字作为任何其他码字的初始段(前缀)出现的码。对于每一对不同的码字,任何一个都不能以另一个作为前缀开始。

适用条件

  • 相对于二进制字符串的连接来定义。**
  • 对于每一对不同的码字 cac_a, cbc_b,cac_a 不是 cbc_b 的前缀,且 cbc_b 也不是 cac_a 的前缀。

理解与推导

  1. 列出在该码下分配给信源符号的所有码字。
  2. 对于每一对不同的码字,检查一个是否是另一个的前缀。
  3. 验证不存在这样的前缀关系。
  4. 得出该码是无前缀码的结论。

例子

在显示的表中,Code 1、2 和 4 是无前缀码。Code 3 不是无前缀码,因为 x1x_1 的码字 0 是 x3x_3 的码字 00 的前缀,且 x2x_2 的码字 1 是 x4x_4 的码字 11 的前缀。

容易误解的地方

  • 假设无前缀码必须是定长的。
  • 将无前缀码与异字头码混淆;一个码可以是异字头的但不是无前缀的。

观看对应讲解

继续追问

答案依据视频资料生成并经过独立核验。若有疑问,请核对原视频或联系原作者。