哈夫曼编码:二进制 vs 三进制 - 效率对比
首先构建哈夫曼树:
二进制哈夫曼编码:
| 符号 | 概率 | 编码 | | --- | --- | --- | | x1 | 1/2 | 0 | | x2 | 1/4 | 10 | | x3 | 1/8 | 110 | | x4 | 1/8 | 111 |
平均码长 = 1/2 × 1 + 1/4 × 2 + 1/8 × 3 + 1/8 × 3 = 1.75
编码效率 = 熵 / 平均码长 = (1/2 × log2(2) + 1/4 × log2(4) + 1/8 × log2(8) + 1/8 × log2(8)) / 1.75 ≈ 0.771
三进制哈夫曼编码:
| 符号 | 概率 | 编码 | | --- | --- | --- | | x1 | 1/2 | 1 | | x2 | 1/4 | 01 | | x3 | 1/8 | 001 | | x4 | 1/8 | 000 |
平均码长 = 1/2 × 1 + 1/4 × 2 + 1/8 × 3 + 1/8 × 3 = 1.75
编码效率 = 熵 / 平均码长 = (1/2 × log3(2) + 1/4 × log3(4) + 1/8 × log3(8) + 1/8 × log3(8)) / 1.75 ≈ 0.869
因此,三进制哈夫曼编码效率更高。
原文地址: https://www.cveoy.top/t/topic/oazO 著作权归作者所有。请勿转载和采集!