信息与编码实验一_第1页
信息与编码实验一_第2页
信息与编码实验一_第3页
信息与编码实验一_第4页
信息与编码实验一_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

桂林电子科技大学数学与计算科学学院实验报告院(系)数学与计算科学学号1200710218姓名韩尚莉成绩课程名称信息与编码实验实验项目名称实验一信息熵的计算指导教师实验室:06406实验日期:2015年12月12日一,实验目的将一大段英文文章作为要统计的样本文件对样本文件进行一维概率统计,并计算出信源熵及冗余度对样本文件进行二维概率统计,并计算出信源熵及冗余度二,实验原理在进行统计时,首先要在程序中打开文件,然后对文件中的字符读入程序中,进行统计。而在二维统计时,尤其要求对文件的指针操作要熟悉。如读入“newspaper”时,应该依次读入“neewwssppaappeer”,而如果使用fgetc()等命令读文件时,读入的是“newspape”为了依次读入“服ewwssppaappeer”,就要求在每次调入fgetc()等命令后,再将文件指针往后退一步,即要求学生能熟练使用fseek()命令进行指针定位操作。三,使用仪器,材料计算机,VisualC++6.0四,实验内容与步骤(过程及结果截图)首先,下载或者建立一个含有英文字母的txt文档,接下来,编写程序统计字符以及计算熵。一维:#include<stdio.h>#include<string.h>#include<math.h>#define_FILEPATH"F:\\xinhao与编码\\0.txt"#define_ALAPHA_NUMBER((int)('z'-'a'+1))voidPrintStati(intarr[],intsize);intStati(constchar*filePath,intarr[]);floatEntropCompute(intarr[],intsum,intarrSize);intmain(){intarr[_ALAPHA_NUMBER*2]={0};intsampleSize=0;sampleSize=Stati(_FILEPATH,arr);PrintStati(arr,_ALAPHA_NUMBER*2);printf("\n");printf("samplesize:%d\n",sampleSize);printf("entrop:%f\n",EntropCompute(arr,sampleSize,_ALAPHA_NUMBER*2));return0;}voidPrintStati(intarr[],intsize){inti=0;while(i<size){if(i<_ALAPHA_NUMBER){printf("%c:%d",i+'a',arr[i]);}else{printf("%c:%d",i+'A'-_ALAPHA_NUMBER,arr[i]);}i++;}}intStati(constchar*filePath,intarr[]){FILE*pFile=NULL;charc;intsum=0;pFile二fopen(filePath,"rb");if(pFile==NULL){printf("failtoopenfile");return0;}while(1){c=fgetc(pFile);if(c==EOF){break;}if(c>='a'&&c<='z'){arr[c-'a']++;sum++;}elseif(c>='A'&&c<='z'){arr[_ALAPHA_NUMBER+c-'A']++;sum++;}}fclose(pFile);returnsum;}floatEntropCompute(intarr[],intsum,intarrSize){floatentrop=0.0F;inti=0;floatprobability=0;while(i<arrSize){if(arr[i]!=0){probability=(arr[i]*1.0F)/sum;entrop+=(-probability*(log(probability)/log(2)));}i++;}returnentrop;}运彳丁结果:S3F:\xinha曰与编码命名Lexe—OXl:7206b:1818c:2709d:3191e:12962f:1889g:1914h:5286i:7222j:61k:5541:5861Im:2665n:7108o:8408p:2169q:43r:6339s:6658t:10577u:3103v:1223w:1945x:I.33y:2687z:2A:155B:69C:89D:88E:60F:92G:2H:201:309J:66K:2L:1M:79N10:43P:2Q:0R:2S:17T:191U:1V:1W:28X:0Y:2Z:0I;amplesize:105056sntrop:4.240259'rocessexitedwithreturnvalue0'ressanykeytocontinue...二维:#include<stdio.h>#include<math.h>#include<stdlib.h>#defineNULL0intcharge(charc){intn;if(c>=65&&c<=90)c=c+32;if(c>+97&&c<=122){n=c-97;returnn;}elsereturn-1;}intmain(){intcount[26][26]={0};charzifu1,zifu2;inti,n,m,j;intsum=0;floatq,sum1=0;FILE*fp;

if((fp=fopen("F:\\xinhao与编码\\0.txt","rb"))二二NULL){printf("can'topenfile!\n");exit(0);}while(!feof(fp)){zifu1=fgetc(fp);n=charge(zifu1);if(n!=-1){zifu2=fgetc(fp);m=charge(zifu2);if(m!=-1){count[n][m]++;fseek(fp,-1,1);}}}fclose(fp);for(i=0;i<26;i++)for(j=0;j<26;j++)sum=sum+count[i][j];printf("thenumberofallthecodeis%d\n",sum);q=(float)sum;for(i=0;i<26;i++)for(j=0;j<26;j++){if(j%3==0)printf("\n");printf("%c%c,%4d,%6.5f%%",i+97,j+97,count[i][j],count[i][j]*100/q);}printf("\n");for(i=0;i<26;i++)for(j=0;j<26;j++)if(count[i][j]));sum1=sum1+(float)((count[i][j]/q)*log10(1/(double)(count[i][j]/q))/log10((double)(2))printf("\n信息熵为:H(x)=%f\n",sum1);}运彳丁结果:);1>1Z\shang.exeheni_unbero±alltJ^ieoccteis-门ri.rinririri%0.00000%n.nnnnn%u.uuucju%o.00000%u.uuuuu%o.00000%Ij.UUULiij%0.00000%n.nnnnn%o.uuuoo%0.00000%u.UUULJLJ%0.00000%Ij.OOuijij%0.00000%n.nnnnn%u.n.onnnn%U.UUULJLJ%o.00000%ij.UUULuj%0.00000%I-n-r-I--rn-T□n-.■!■-rn-T_Jr-.-I--r-I--r□I-behkn<l七-V工behkn虫t.wubcfhk11aaaaabbbbbbbbbL:c:1---'_■-:-I-n-r-I--rn-T-Jn-Jr-rn-T_Jr-I-I--r-I--r-Jnnonoouo-M-on^.5UO.M-4noo4GSO'J6U4'JJ<L30.□□□□□%0.00000%n.nnnnn%□.uuuuu%0.00000?ou.uuuuu%o.00000%a.oooaawo.00000%n.nnnnnw□.AlLJlb%0.00000%u.uuuuu%0.00000%ij.'joOCuj%0.00033%n.nnnnn%□.uuuuu%口一onnno%U.bya<Lb%0.4SG37%0.01129%0.00000%EF:斶码实验W幅hang’ex巳xp,0,xs,0,Sxy,0,ya,Syd,Syg,Syj,0,ym,59,VP,12,ys,100,yv,0,yy,Sza,0,zd,0,格Sn0,部结结视本ES,本的字入0.00000%0.00000%0.00000%0.00000%0.00000%0.00000%0.00000%0.00000%0.08328%0.01694%0.14115%0.00000%0.00000%0.00000%0.00000%0.00000%0.00000%0.00000%RbK)o%验,将含有中,进行统0.00000%xq,0,xt,17,xw,0,xz,0,yb,0,ye,97,yhn0,yk,0,皿0,双0,yt,1,yw,0,V瓦0,zb,0,ze,1,zh,0,zk,0,zn,0,段英I段英B^实验对zz,0,0.00000%0.02400%0.00000%0.00000%0.00000%0.13691%0.00000%0.00000%0.00000%0.00000%0.00141%0.00000%0.00000%0.00000%0.00141%0.00000%0.00000%0.00000%0.00000%rn作为要统进行一维0.00000%ri.□□□□□%0.00000%n.nnnno%u.uuuuu%0.00000%u.uuuuu%0.00000%u.Ijijuuij%n.nnnnn%u.ouuuo%0.44744%u.0.273S3%0.ij'jOOu%0.45440%n.nnnnn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论