4
7.使用LZ77算法对一个序列进行编码。给定C(a)=1,C(b)=2,C(r)=3,C(t)=4.对以下三元组序列解码:
<0,0,3><0,0,1><0,0,4><2,8,2><3,1,2><0,0,3><6,4,4><9,5,1>
假定窗口的大小为20,先行缓冲区的大小为10。对解码所得的序列进编码,确保得到相同的三元组序列。
输入
<0,0,3><0,0,1><0,0,4><2,8,2><3,1,2><0,0,3><6,4,4><9,5,1>
输出
无
解码 :<0,0,3>
r
解码 :<0,0,1>
ra
解码 :<0,0,4>
rat
解码:<2,8,2>
ratatatatatb
解码:<3,1,2>.
序列ratatatatatbab的来源
在ra|tatatatatb|中,
针对 3
从右往左取第三个起a
针对 1
拷贝一个字母a,
针对 2
b
最终得到ratatatatatbab
其它按这个方法得之:
解码:<0,0,3>
ratatatatatbabr
解码:<6,4,4>
ratatatatatbabratbat
解码:<9,5,1>
ratatatatatbabratbatbabraa
对所得序列ratatatatbabratbatbabraa进行编码过程如下:
编码:序列为ratatatatbabratbatbabraa中
W=20,S=10
|ratatatatb|abratbatbabraa
对r没有匹配字符
发送:<0,0,3>
r|atatatatba|bratbatbabraa
对a没有匹配字符
发送:<0,0,1>
ra|tatatat_a_|rat_at_a_rat
对t没有匹配字符
发送:<0,0,4>
rat|atatatbabr|atbatbabraa
发送:<2,8,2>
|ratatatatb|abratbatbabraa
发送:<3,1,2>
ra|tatatatbab|ratbatbabraa
发送:<0,0,3>
rat|atatatbabr|atbatbabraa
发送:<6,4,4>
ratatata|tbabratbat|babraa
发送:<9,5,1>
8.给定以下初始词典和接收序列,构建一个LZW词典,并对所发送的序列进行解码。
接收序列:4,5,3,1,2,8,2,7,9,7,4
初始词典:
索引 | 项 |
1 | S |
2 | b |
3 | I |
4 | T |
5 | H |
解码:
索引 | 项 | 输出 |
1 | S | |
2 | b | |
3 | I | |
4 | T | |
5 | H | |
6 | TH | 4 |
7 | HI | 5 |
8 | IS | 3 |
9 | Sb | 1 |
10 | bI | 2 |
11 | ISb | 8 |
12 | bH | 2 |
13 | HIS | 7 |
14 | SbH | 9 |
15 | HIT | 7 |
得出解码序列位THLSbISHISbHIT.