费诺和香农编码源程序及运行结果

上传人:jin****ng 文档编号:224217659 上传时间:2023-07-27 格式:DOCX 页数:7 大小:65.10KB
收藏 版权申诉 举报 下载
费诺和香农编码源程序及运行结果_第1页
第1页 / 共7页
费诺和香农编码源程序及运行结果_第2页
第2页 / 共7页
费诺和香农编码源程序及运行结果_第3页
第3页 / 共7页
资源描述:

《费诺和香农编码源程序及运行结果》由会员分享,可在线阅读,更多相关《费诺和香农编码源程序及运行结果(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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!