符号集A=mn对序号序列mmnmnnmnnmmnm进lz编码
首先,我们需要对符号集A进行编码,可以采用哈夫曼编码。
- 统计符号出现频率
符号 | 频率 --- | --- m | 7 n | 6
- 构建哈夫曼树
我们按照频率从小到大的顺序,先将n和m合并,得到一个权值为13的节点,然后再将其与n合并,得到一个权值为19的节点,最终得到以下哈夫曼树:
19
/ \
13 n
/ \
m m
- 分配编码
从根节点开始,向左走为0,向右走为1,得到以下编码:
符号 | 编码 --- | --- m | 00 n | 1
- 对序号序列进行编码
根据上面的编码表,将序号序列mmnmnnmnnmmnm转换为二进制串:
0011000100100101111
最终的lz编码为:(0,3)(1,2)(0,1)(0,0)(1,3)(1,2)(0,1)(1,1)(1,1)(0,3)(0,2)(1,0)0011000100100101111
其中,括号中的数字表示重复子串的位置和长度,最后的二进制串为非重复部分。
原文地址: http://www.cveoy.top/t/topic/ftl4 著作权归作者所有。请勿转载和采集!