数据压缩实验程序.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据压缩实验程序

游程编码 #includeiostream using namespace std; struct RLE{ public: int sum; char num;}; int main(){ char mes[100]; RLE mes1[100]; static int n=0; int i,j,s=0; cout请输入消息序列:endl; for(j=0;j100;j++) { cinmes[j]; if(mes[j]==.) break;} for(i=0;i100;i++) mes1[i].sum=1; mes1[n].num=mes[s]; for(i=1;ij;) { if(mes[i]==mes[s]){ mes1[n].sum+=1; i++; } else{ s=i; i++; n++; mes1[n].num=mes[s]; }} for(i=0;i=n;i++) { if(mes1[i].sum==1) {coutmes1[i].num;} else if(mes1[i].sum==2) {coutmes1[i].nummes1[i].num;} Else {coutmes1[i].num_mes1[i].sum;}} coutendl; return 0; } 算术编码 #include iostream.h #define M 100 #define N 4 class suanshu{ int count,length; char number[N],n; long double chance[N],c; char code[M]; long double High,Low,high,low,d; public: suanshu() {High=0;Low=0;} void get_number(); void get_code(); void coding(); ~suanshu(){} }; void suanshu::get_number() {coutplease input the number and its chance.endl; for(int i=0;iN;i++) {cinnc; number[i]=n; chance[i]=c; } if(i==20) coutthe number is full.endl; count=i; } void suanshu::get_code(){ coutplease input the codes length:; cinlength; while(length=M) {coutthe length is too larger,please input a smaller one.; cinlength;} for(int i=0;ilength;i++){ cincode[i]; }} void suanshu::coding() { int i,j=0; for(i=0;icount;i++) if(code[0]==number[i]) break; while(ji) Low+=chance[j++]; d=chance[j]; High=Low+d; for(i=1;ilength;i++) for(j=0;jcount;j++){ if(code[i]==number[j]) { if(j==0){ low=Low; high=Low+chance[j]*d; High=high;d*=chance[j];} else{ float chance_l=0.0; for(int k=0;k=j-1;k++) chance_l+=chance[k]; low=Low+d*chance_l; high=Low+d*(chance_l+chance[j]); Low=low; High=high; d*=chance[j];}} else continue;} coutthe result is:Lowendl;} int main(){ suanshu a; a.get_number(); a.get_code(); a.coding(); return 0;

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档