香农编码二叉树c语言,shannon码的编码实验总结.docx
shannon碼的編碼實驗總結(jié)
本科生實驗報告 實驗課程信息理論與編碼 學院名稱信息科學與技術(shù)學院 專業(yè)名稱 學生姓名 學生學號 指導教師 實驗地點 實驗成績 二〇一六年九月----二〇一六年十一月 填寫說明 1、適用于本科生所有的實驗報告; 2、專業(yè)填寫為專業(yè)全稱,有專業(yè)方向的用小括號標明; 3、格式要求: ①用A4紙雙面打印或在A4大小紙上用藍黑色水筆書寫。②打印排版:正文用宋體小四號,倍行距,頁邊距采取默認形式。字符間距為默認值;頁碼用小五號字底端居中。 ③具體要求: 題目; 摘要; 關(guān)鍵詞 小四號黑體 參考文獻,參考文獻用五號宋體,參照《參考文獻著錄規(guī)則》。 實驗一:香農(nóng)編碼 一、實驗?zāi)康摹 ≌莆胀ㄟ^計算機實現(xiàn)香農(nóng)編碼的方法。 二、實驗要求 對于給定的信源的概率分布,按照香農(nóng)編碼的方法進行計算機實現(xiàn)。 三、實驗基本原理 給定某個信源符號的概率分布,通過以下的步驟進行香農(nóng)編碼 1.將信源消息符號按其出現(xiàn)的概率大小排列 p(x1)?p(x2)???p(xn) 2.確定滿足下列不等式的整數(shù)碼長Ki; ?log2p(xi)?Ki??log2p(xi)?1 3.為了編成唯一可譯碼,計算第i個消息的累加概率 pi??p(xk) k?1i?1 4.將累加概率Pi變換成二進制數(shù)。 5.取Pi二進制數(shù)的小數(shù)點后Ki位即為該消息符號的二進制碼。 四、實驗內(nèi)容 x2x3x4x5x6x7??X??x1?q(X)???????進行二進制香農(nóng)編碼。1.對給定信源? x2x3x4x5x6??X??x1??q(X)??????進行二進制香農(nóng)編碼。2.對給定信源? 3.自已選擇一個例子進行香農(nóng)編碼。 五、實驗設(shè)備 PC計算機,C++ 六、實驗報告要求 1、畫出程序設(shè)計的流程圖, 2、寫出程序代碼, 3、寫出在調(diào)試過程中出現(xiàn)的問題, 4、對實驗的結(jié)果進行分析。 七、流程圖 八、程序代碼 //:定義控制臺應(yīng)用程序的入口點。 // #include"" #include #include usingnamespacestd; int_tmain(intargc,_TCHAR*argv[]) { inttest;intN; cout>N; cout>X[i]; } //由小到大排序 for(i=0;i=1)//累加概率乘2大于1,對應(yīng)碼字加1,累加概率自身取余 {pa[i]=pa[i]*2-1;code[i]+="1"; } else//累加概率乘2小于1時,對應(yīng)碼字加0,累加概率自身取余 { code[i]+="0"; pa[i]*=2;}}{code[i]=code[i].substr(0,K[i]);}//求碼字for(i=0;idata() #include"vector" #include"algorithm" #include"" usingnamespacestd; structbitree {//定義結(jié)構(gòu)用于存儲編碼結(jié)果的二叉樹結(jié)構(gòu),在譯碼時用到 charch;//用于存儲碼符號 charmz;//用于存儲碼字 bitree*lchild; bitree*rchild; }; structdata {//用于存儲相關(guān)的信源符號以及其概率 doublep; charch; vectorcode; intml; }; boolsortspecial(datadt1,datadt2) {//用于排序時用 return>; } voidprint2(vectorvd) {//用于打印譯碼結(jié)果 for(inti=0;i&vd) {//用于讀入相關(guān)的信源符號以及概率 intn; while(true) { cout>n; cout>; cin>>; =0; _back(dt); i++; } doublesum=0; vector::iteratorpit; /*for(pit=();pit!=();pit++) { sum+=pit->p; } if(sum!=1) { coutch=ch1; bit->mz=ch2; bit->lchild=NULL; bit->rchild=NULL; if(ch1=='0') bt->rchild=bit; elsebt->lchild=
總結(jié)
以上是生活随笔為你收集整理的香农编码二叉树c语言,shannon码的编码实验总结.docx的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西部牧业是上市公司吗
- 下一篇: 微服务应用容器化场景中常见问题总结