第二次作業

2022-09-01 21:21:38 字數 2266 閱讀 9325

2、利用程式huff_enc和huff_dec進行以下操作(在每種情況下,利用由被壓縮影象生成的碼本)。

(a)對sena、sensin和omaha影象進行編碼。

給出以上每一次實驗得出的檔案大小,並解釋其差別。

答:檔名

壓縮前大小

壓縮後大小

壓縮比sinan

64k61k

95.31%

sena

64k57k

89.06%

omaha

64k58k

90.63%

4.乙個信源從符號集a=中選擇字母,概率為p(a1)=0.15,p(a2)=0.04,p(a3)=0.26,p(a4)=0.05,p(a5)=0.50。

(a)計算這個信源的熵。

(b)求這個信源的霍夫曼編碼。

(c)求(b)中**的平均長度及其冗餘度。

答: (a)h=-0.15log20.15-0.04log20.04-0.26log20.26-0.05log20.05-0.50log20.50

(c)平均碼長   l=1*0.5+2*0.26+3*0.15+4*0.05+4*0.04

=1.02+0.65+0.16

=1.83(bits)

冗餘度=l-h=1.83-1.818=0.012(0.66%)

5.乙個符號集a=,其概率為p(a1)=0.1,p(a2)=0.3,p(a3)=0.25,p(a4)=0.35,使用以下過程找出一種霍夫曼碼:

(a)本章概述的第一種過程;

(b)最小方差過程。

解釋這兩種霍夫曼碼的區別。

答:(a)

碼字:a1:11,   a2:01,  a3:10, a4:00。

第一種過程的平均碼長:

l1=1*0.35+2*0.3+3*0.25+3*0.1

=0.35+0.6+0.75+0.3

=2(bits)

碼長方差:s1

2=0.35(1-2)2+0.3(2-2)2+0.25(3-2)2+0.1(3-2)2

=0.35+0.35

=0.7

最小方差霍夫曼編碼平均碼長為:

l2=2*0.1+2*0.25+2*0.3+2*0.35

=0.2+0.5+0.6+0.7

=2(bits)

碼長方差為:s2

2=(0.1+0.25+0.3+0.35)(2-2)2

=0因為s1>s2,所以最小方差霍夫曼編碼比第一種編碼更好。

2-6. 在本書配套的資料集中有幾個影象和語音檔案。

(a)編寫一段程式,計算其中一些影象和語音檔案的一階熵。

(b)選擇乙個影象檔案,並計算其二階熵。試解釋一階熵和二階熵之間的差別。

(c)對於(b)中所用的影象檔案,計算其相鄰畫素之差的熵。試解釋你的發現。

答:檔名

一階熵二階熵

差分熵sena.img

6.834299

3.625204 

3.856899 

sensin.img

7.317944

4.301673 

4.541547

omaha.img

6.942426

4.488626

6.286834

earth.img

4.770801

2.568358 

3.962697 

gabe.raw

7.116338

6.654578

8.978236

berk.raw

7.151537

6.705169

8.976150 

test.txt

4.315677

3.122731

6.099982

第二次作業

execise02 1.查詢85年以後出生的學生姓名 性別和出生日期 2.列表顯示所有可能的學生選課組合 學號 課程號 3.查詢1 2 4班中陳姓同學的資訊 4.查詢所有及格的學生姓名 所選課程名及所得分數 5.統計各門課程的及格人數 課程編號 課程名 及格人數 6.統計各門課程的總人數 及格人數和...

第二次作業

第一題 p1 1 遞迴寫法,效率低 include 1.寫乙個函式返回引數值為1的個數 比如 15 0000 1111 4個1 程式原型 int count one bits unsigned int value int fuc int x else return 0 void mainp1 p1 ...

第二次作業

檔名稱 516.cpp 作 者 闕文榮 完成日期 2016 年 3 月 11 日 版 本 號 v1.1 對任務及求解方法的描述部分 用while語句控制輸出 輸入描述 略 問題描述 現在北京有一套房子,200萬,假設房價每年 10 乙個軟體工程師每年固定能賺40萬。他想買這套房子,多大的 率能夠忍受...