第四次作业
7.使用LZ77算法对一个序列进行编码。给定C(a)=1,C(p)=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,4>
假定窗口的大小为20,先行缓冲区的大小为10。对解码所得到的序列进行编码,确保得到相同的三元组序列。
解:由题意,先行缓冲区的大小为10,解码过程如下
<0,0,3> |r
|r|
<0,0,1> |r|a
|ra|
<0,0,4> |ra|t
|rat|
<2,8,2> |rat|atatatp
|ratatatatp|
<3,1,2> |ratatatatp|ap
ra|tatatatpap|
<0,0,3> ra|tatatatpap|r
rat|atatatpapr|
<6,4,4> rat|atatatpapr|atpat
ratatata|tbapratpat|
<9,5,4> ratatata|tbapratpat|paprat
ratatatatpapra|tpatpaprat|
所以最后解码得:ratatatatpapratpatpaprat
下面是进行编码过程:
序列为ratatatatpapratpatpaprat,对其进行编码
|ratatatatp|apratpatpaprat <0,0,3>
r|atatatatba|bratbatbabrat <0,0,1>
ra|tatatatbab|ratbatbabrat <0,0,4>
rat|atatatbabr|atbatbabrat <2,8,2>
|ratatatatb|abratbatbabrat <3,1,2>
ra|tatatatbab|ratbatbabrat <0,0,3>
rat|atatatbabr|atbatbabrat <6,4,4>
ratatata|tbabratbat|babrat <9,5,4>
8.给定一下初始词典和接收序列,构建一个LZW词典,并对所发送的序列进行解码。
接收序列:4,5,3,1,2,8,2,7,9,7,4
初始字典:
索引 |
条目 |
1 |
S |
2 |
P |
3 |
I |
4 |
T |
5 |
H
|
解码如下:
索引 |
条目 |
输出 |
1 |
S |
|
2 |
_ |
|
3 |
I |
|
4 |
T |
|
5 |
H |
|
6 |
TH |
4 |
7 |
HI |
5 |
8 |
IS |
3 |
9 |
S_ |
1 |
10 |
_I |
2 |
11 |
IS_ |
8 |
12 |
_H |
2 |
13 |
HIS |
7 |
14 |
S_H |
9 |
15 |
HIT |
7 |
|
|
4 |
所以解码后的序列为:THIS_IS_HIS_HIT