huffman-code - 具有相同符号频率的霍夫曼码
问题描述
从这些频率开始:
A:7 F:6 H:1 M:2 N:4 U:5
在稍后的步骤中,我有 5 6 7 7,其中 7 之一是“A”。我选择哪个 7 分支为 0 或 1 是任意的。
那么如何获得唯一可解码的代码字呢?
解决方案
您需要将代码发送到接收器,而不是频率。0
您可以将's 和'任意分配1
给所有分支,然后在编码符号本身之前发送每个符号的代码。来自同一组频率的许多可能的霍夫曼码。
更常见的是只发送每个符号的比特码长度。在这种情况下,那些是A:2 F:2 H:4 M:4 N:3 U:2
. 然后在两端使用仅取决于长度的规范代码。在这种情况下,从0
's 开始,规范代码将是:
A: 00
F: 01
U: 10
N: 110
H: 1110
M: 1111
其中相等长度的代码按字典顺序分配给符号。请注意,不需要构建的 Huffman 树。所需要的只是每个符号的位数。
推荐阅读
- python-3.x - 在文本字段中写入 pdf 文件中的内容
- amazon-web-services - ECS Fargate 任务容器缺少 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
- python - 无法在 python 中使用 selenium 模块登录 gmail
- regex - 使用 re.sub 将 +1 附加到数字字符串
- python - OS X Catalina 的 Crontab 语法设置
- oracle-sqldeveloper - 如何使用 oracle sql developer 保存所有包的规范和正文?
- c - pthread_create() 的多个参数不起作用
- c# - C# 对象似乎在没有 ref 关键字的情况下通过引用传递?(好奇心)
- c# - 对于 OData 和 ASP.NET Core,URL 太长
- css - 我收到 Uncaught TypeError: Cannot read property 'PureComponent' of undefined 在我的反应应用程序的控制台中。它期待什么?