《2022年2022年哈夫曼编码C语言程序 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年哈夫曼编码C语言程序 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、附录一:哈夫曼编码分析与实现C 语言源程序#include #include #define w 10 float aw,bww=0,fw=0; int i,cwww,dw=0,m; xiaoxi() int n; float P=0; printf(n 请分别输入消息概率 na); for(n=0;n=1|an=0) printf( 出错,概率应在0,1 范围内 n); return(0); break; P+=an; if(P!=1) printf( 出错,概率和应为1n); return(0); else return(1); ordination(int f,float *e) int
2、 g,j; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - float k; for(g=0;gf-1;g+) for(j=g+1;jf;j+) if(eg=0;i-) t=0; for(k=m-2-i;k=0;k-) if(fi=bi+1k)&(t=0) t=1; for(r=0;ci+1kr!=2;r+) cim-i-2r=ci+1kr; cim-i-1r=ci+1kr; cim-i-2r=0; cim-i-1r=1; 名师
3、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - for(j=m-i-3;j=0;j-) for(k=m-2-i;k=0;k-) if(bij=bi+1k) for(r=0;ci+1kr!=2;r+) cijr=ci+1kr; add() int j; for(i=0;im;i+) b0i=ai; for(i=1;im;i+) bim-i-1=bi-1m-i-1+bi-1m-i; fi-1=bim-i-1; for(j=0;jm-i-
4、1;j+) bij=bi-1j; ordination(m-i,bi); main() int n,x,y; float K=0,H=0; for(n=0;nw;n+) for(x=0;xw;x+) for(y=0;yw;y+) cnxy=2; printf(n 请 输 入 消 息 个 数nna); scanf(%d,&m); printf(n); y=xiaoxi(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - if(y
5、=1); ordination(m,a); add(); coding(); printf(n 编码过程 n); for(n=0;nm;n+) printf(n 第 %d 列:,n+1); for(x=0;xm;x+) if(bnx=0) break; printf(t%5.4f,bnx); printf(n); printf(n); for(n=0;nm;n+) printf( 概率为 %5.4f 的符号编码后码字为 :t,an); for(x=0;xm;x+) if(c0nx=2) break; printf(%d,c0nx); dn+; K+=an*dn; H+=(-an*log10l(
6、an)/log10l(2); printf(t 其 码 长为: %dn,dn); printf(n 平均码长K=); printf(%3.2f,K); printf(n 信源熵 =%3.2f,H); printf(n 编 码 效 率 =(H/K)=%3.2f%,H*100/K);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - printf(n 冗余度 = (1- )=%3.2fn,1-H/K); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -