李秋红130705010066-冯金伟博客园

解答:

一、解码过程:(备注:C(b)表示空格)

(1)<o,l,c>=<0,0,3>  因为C(r)=3  所以首位字母编码是:r  字母序列是:r

(2)<o,l,c>=<0,0,1>  因为C(a)=1  所以增加的字母编码是:a  字母序列是:ra

(3)<o,l,c>=<0,0,4>  因为C(t)=4  所以增加的字母编码是:t  字母序列是:rat

(4)<o,l,c>=<2,8,2>  因为C(b)=2  所以增加的字母编码是:atatatatb  字母序列是:ratatatatatb

(5)<o,l,c>=<3,1,2>  因为C(b)=2  所以增加的字母编码是:ab  字母序列是:ratatatatatbab 

(6)<o,l,c>=<0,0,3>  因为C(r)=3  所以增加的字母编码是:r  字母序列是:ratatatatatbabr  

(7)<o,l,c>=<6,4,4>  因为C(t)=4  所以增加的字母编码是:atbat  字母序列是:ratatatatatbabratbat    

(8)<o,l,c>=<9,5,4>  因为C(t)=4 所以增加的字母编码是:babrat  字母序列是:ratatatatatbabratbatbabrat    

综上所诉,将C(b)转换为空格,所得的解码序列是:ratatatatat a rat at a rat 

二、编码过程:

已知:1、字母序列是:ratatatatat a rat at a rat     2、W=20  S=10    3、C(a)=1 C( )=2 C(r)=3 C(t)=4  

(1)|ratatatatat a rat at a rat  对于r  无匹配字符串  发送<0,0,C(r)> 

(2)r|atatatatat| a rat at a rat  对于a  无匹配字符串  发送<0,0,C(a)>

(3)ra|tatatatat |a rat at a rat  对于t  无匹配字符串  发送<0,0,C(t)>

(4)rat|atatatat a| rat at a rat  对于atatatat  发送<2,8,C( )>

(5)ra|tatatatat |a rat at a| rat  对于a  发送<3,1,C( )>

(6)rata|tatatat a |rat at a r|at  对于r  无匹配字符串  发送<0,0,C(r)>

(7)ratat|atatat a r|at at a ra|t  对于at a  发送<6,4,C(t)>

(8)ratatatata|t a rat at| a rat    |  对于 a ra  发送<9,5,C(t)>//提问:此处能否是<9,6,C(t)>?

 综上所诉,编码序列是:<0,0,3><0,0,1><0,0,4><2,8,2><3,1,2><0,0,3><6,4,4><9,5,4>

李秋红130705010066-冯金伟博客园

一、解码过程:

输入:4,5,3,1,2,8,2,7,9,7,4

输出:THIS IS HIS HIT

字典      
索引 条目  输入  模式  输出
1      
2  空格      
3  I      
4  T      
5  H      
    4 T  
6 TH 5 TH T
7  HI  3  HI  H 
8  IS  1  IS  I 
9   —-2 S    S
10  IS —–8   IS  空格
 11  IS ——2  IS   IS 
12  HI  ——-7   HI   空格
13 HIS   ——–9  HIS   HI
 14  S HI ———7  S HI S 
15 HIT ———-4  HIT HI
        T