费诺和香农编码源程序及运行结果
《费诺和香农编码源程序及运行结果》由会员分享,可在线阅读,更多相关《费诺和香农编码源程序及运行结果(7页珍藏版)》请在装配图网上搜索。
1、香农编码源程序 #include #include #include #include class T public:T() T();void Create();void Coutpxj();void Coutk();void Coutz();void Print(); protected:int n;double *p;double *pxj;int *k;double *mz;void T:Create()coutn;p=new doublen;cout 请分别输入这n个概率:n; for(int i=0;ipi;pxj=new doublen;k=new intn;mz=new doub
2、len;double sum=0.0; for(i=0;in;i+) sum+=pi;if(sum!=1.0)throw 1;elsefor(i=0;in;i+)int k=i;for(int j=i+1;jn;j+) if(pkpj) k=j;double m=pi; pi=pk; pk=m;T:T()delete p;delete pxj;delete k;delete mz;void T:Coutpxj()pxj0=0;for(int i=1;in;i+)pxji=0;for(int j=0;ji;j+) pxji+=pj;void T:Coutk()for(int i=0;i0) ki
3、=(int)d+1; else ki=(int)d; void T:Print()coutXisetw(8)P(xi) setw(8)Pa(xj) setw(8)Kisetw(8) 码字endl;for(int i=0;in;i+) coutXi+1setw(8)setprecision(2)pi setw(8)setprecision(2)pxji setw(8)ki ; mzi=pxji;for(int j=0;j=0)cout1;mzi=2*mzi-1;elsecout0;mzi=2*mzi;coutendl;double K=0.0,H=0.0,Y;for(i=0;in;i+)K+=(
4、double)pi*ki;H+=(-1)*pi*(log10(pi)/log10(2.0);Y=H/K;cout 平均码长:Kendl;cout信源熵:Hendl;cout 编码效率:Yendl;void main()T t;int e;tryt.Create();t.Coutpxj();t.Coutk();t.Print();catch(int e)if(e=1) cout 输入错误,请重新运行; 费诺编码源程序#include#include#define N 15int paNN;void fano(float p,int aNN,int n,int m,int k) float g=0
5、.0,h=0.0,d,b,c;int i,j,flase;if(nm) for(i=n;i=m;i+) g=pi+g; g=g/2;for(i=n;ig)d=h-pi;b=h-g;c=g-d;if(cb)for(j=n;j=i;j+) ajk=0; fano(p,a,n,i,k+1); for(j=i+1;j=m;j+) ajk=1; fano(p,a,i+1,m,k+1);elsefor(j=n;j=i-1;j+) ajk=0; fano(p,a,n,i-1,k+1); for(j=i;j=m;j+) ajk=1; fano(p,a,i,m,k+1);break;void main()int
6、 i,j,kN,n,flase=0;float pN,m,H=0.0,K=0.0,sum=0.0; cout 输入信源符号个数n;cout 输入各信源符号概率endl;for(i=1;ipi;for(i=1;i=n;i+)sum=sum+pi;for(i=1;i=n;i+)if(pi1.0|sum!=1.0) coutinput gai lv error!; flase=1;break;if(flase=0)for(i=0;i=n;i+)for(j=0;j=n;j+) paij=10;fano(p,pa,1,n,1);cout信源费诺编码如下:n;for(i=1;i=n;i+) ki=0;co
7、utxi=pit 码字为t;for(j=1;j=n;j+)if(paij!=10) coutpaij;ki+;coutt 码长为tkiendl;for(i=1;i=n;i+)H=-(pi*log(pi)/log(2)+H;cout 信源熵H(X)=H(比特 / 符号)endl;for(i=1;i=n;i+)K=pi*ki+K;cout 平均码长 K=K(比特 / 符 号)endl; cout编码效率为(H/K)*100%endl;/if(flase=0)cout号 为为为为W- 码码码!;符48检0 1 5匕 X 0 1129318 91 9:0111T- 口为勺勾勾= 码宀 丈丈丈 子x“ 9 编码码码码H K为 诺 5 5长率 费.5.2.1.1爛翼 源=0=0=0=0霧码 50.信农灯信平编Press any key to continue
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市场营销沟通与促销策略教学课件2
- 市场营销活动策划及执行教学课件
- 福清美食鉴赏资料课件
- 小学语文S版四年级(下册)滥竽充数课件
- 粉体表面处理技术规范课件
- 小学语文S版三年级(下册)语文百花园二课件
- 小学语文S版三年级下册知识清单课件第五单元
- 市场营销概论-课件
- 小学道德与法治(部编版)《我的家庭贡献与责任》优质ppt课件
- 小学语文S版四年级上册知识清单课件第三单元
- 小学常规教学工作与教学改革课件
- 粉末性能及其测定课件
- 福建七年级生物上册-6.1种子萌发形成幼苗(第1课时-种子的结构)讲义-(新版)北师大版课件
- 小学语文S版六年级下册归类复习课件之现代文阅读【三】说明文、简单议论文
- 疯狂三天三夜增员宣导稿具体举措课件