日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

香农编码二叉树c语言,shannon码的编码实验总结.docx

發(fā)布時間:2024/9/27 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 香农编码二叉树c语言,shannon码的编码实验总结.docx 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。