標籤:lang 公式 str 算術 更新 ack 作業 習題 span
《算術編碼》
5、給定如表4-9所示的機率模型,求出序列a1a1a3a2a3a1的實值標籤。
表4-9 習題5、6的機率模型
字 母 機率
a1 0.2
a2 0.3
a3 0.5
解:根據題意,可知所求實值標籤就是求序列113230的實值標籤
由於 Fx(k)=0,k≤0,Fx(1)=0.2,Fx(2)=0.5,Fx(3)=1,Fx(k)=1,k>3
計算公式: u(k)=l(k-1)+(u(k-1)-l(k-1))FX(xk)
l(k)=l(k-1)+(u(k-1)-l(k-1))FX(xk-1)
①該序列的第一個元素為1,得到以下更新:
u(1)=l(0)+(u(0)-l(0))*Fx(1)=0+(1-0)*0.2=0.2
l(1)=l(0)+(u(0)-l(0))*Fx(0)=0+(1-0)*0=0
所以該序欄標籤的區間為[0,0.2)。
②該序列的第二個元素為1,得到以下更新:
u(2)=l(1)+(u(1)-l(1))*Fx(1)=0+(0.2-0)*0.2=0.04
l(2)=l(1)+(u(1)-l(1))*Fx(0)=0+(0.2-0)*0=0
所以序欄標籤的區間為[0,0.04)。
③該序列的第三個元素為3,得到以下更新:
u(3)=l(2)+(u(2)-l(2))*Fx(3)=0+(0.04-0)*1 =0.04
l(3)=l(2)+(u(2)-l(2))*Fx(2)=0+(0.04-0)*0.5=0.02
所以該序欄標籤的區間為[0.02,0.04)。
④該序列的第四個元素為2,得到以下更新:
u(4)=l(3)+(u(3)-l(3))*Fx(2)=0.02+(0.04-0.02)*0.5 =0.03
l(4)=l(3)+(u(3)-l(3))*Fx(1)=0.02+(0.04-0.02)*0.2=0.024
所以序欄標籤的區間為[0.024,0.03)。
⑤該序列的第五個元素為3,得到以下更新:
u(5)=l(4)+(u(4)-l(4))*Fx(3)=0.024+(0.03-0.024)*1=0.03
l(5)=l(4)+(u(4)-l(4))*Fx(2)=0.024+(0.03-0.024)*0.5=0.027
所以該序欄標籤的區間為[0.027,0.03)。
⑥該序列的第六個元素為1,得到以下更新:
u(6)=l(5)+(u(5)-l(5))*Fx(1)=0.027+(0.03-0.027)*0.2=0.0276
l(6)=l(5)+(u(5)-l(5))*Fx(0)=0.027+(0.03-0.027)*0=0.027
所以該序欄標籤的區間為[0.027,0.0276)。
綜上可得產生序列113231的標籤如下:
即Tx(a1a1a3a2a3a1)=(0.027+0.0276)/2=0.0273
6、對於表4-9所示的機率模型,對於一個標籤為0.63215699的長度為10的序列進行解碼。
解:由機率模型可知:
Fx(k)=0, k≤0, Fx(1)=0.2, Fx(2)=0.5, Fx(3)=1, k>3.
設u(0)=1,l(0)=0
① l(1)=0+(1-0)Fx(x1-1)=Fx(xk-1)
u(1)=0+(1-0)Fx(x1)=Fx(xk)
當xk=3時,0.63215699在區間[0.5,1)中;
② l(2)=0.5+0.5Fx(xk-1)
u(2)=0.5+0.5Fx(xk)
當xk=2時,0.63215699在[0.6,0.75)中;
③ l(3)=0.6+0.15Fx(xk-1)
u(3)=0.6+0.15Fx(xk)
當xk=2時,0.63215699在[0.63,0.675)中;
④ l(4)=0.63+0.045Fx(xk-1)
u(4)=0.63+0.045Fx(xk)
當xk=1時,0.63215699在[0.63,0.639)中;
⑤ l(5)=0.63+0.009Fx(xk-1)
u(5)=0.63+0.009Fx(xk)
當xk=2時,0.63215699在[0.6318,0.6345)中;
⑥ l(6)=0.6318+0.0027Fx(xk-1)
u(6)=0.6318+0.0027Fx(xk)
當xk=1時,0.63215699在[0.6318,0.63234)中;
⑦ l(7)=0.6318+0.00054Fx(xk-1)
u(7)=0.6318+0.00054Fx(xk)
當xk=3時,0.63215699在[0.63207,0.63234)中;
⑧ l(8)=0.63207+0.00027Fx(xk-1)
u(8)=0.63207+0.00027Fx(xk)
當xk=2時,0.63215699在[0.632124,0.632205)中;
⑨ l(9)=0.632124+0.000081Fx(xk-1)
u(9)=0.632124+0.000081Fx(xk)
當xk=2時,0.63215699在[0.6321402,0.6321645)中;
⑩ l(10)=0.6321402+0.0000243Fx(xk-1)
u(10)=0.6321402+0.0000243Fx(xk)
當xk=3時,0.63215699在[0.63215235,0.6321645)中;
綜上可得: 所求序列為a3a2a2a1a2a1a3a2a2a3。
第四次作業