信息与编码实验一-信息熵的计算.doc

信息与编码实验一-信息熵的计算.doc

ID:55929410

大小:57.50 KB

页数:5页

时间:2020-06-15

信息与编码实验一-信息熵的计算.doc_第1页
信息与编码实验一-信息熵的计算.doc_第2页
信息与编码实验一-信息熵的计算.doc_第3页
信息与编码实验一-信息熵的计算.doc_第4页
信息与编码实验一-信息熵的计算.doc_第5页
资源描述:

《信息与编码实验一-信息熵的计算.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、桂林电子科技大学数学与计算科学学院实验报告实验室:06406实验日期:2015年12月12日院(系)数学与计算科学学号1200710218姓名韩尚颖成绩课程名称信息与编码实验实验项目名称实验一信息熵的计算指导教师一,实验目的1.将一大段英文文章作为要统计的样本文件2.对样本文件进行一维概率统计,并计算出信源熵及冗余度3.对样本文件进行二维概率统计,并计算出信源熵及冗余度二,实验原理在进行统计时,首先要在程序中打开文件,然后对文件中的字符读入程序中,进行统计。而在二维统计时,尤其要求对文件的指针操作要熟悉。如读入“newspaper

2、”时,应该依次读入“neewwssppaappeer”,而如果使用fgetc()等命令读文件时,读入的是“newspape”为了依次读入“neewwssppaappeer”,就要求在每次调入fgetc()等命令后,再将文件指针往后退一步,即要求学生能熟练使用fseek()命令进行指针定位操作。三,使用仪器,材料计算机,VisualC++6.0四,实验内容与步骤(过程及结果截图)首先,下载或者建立一个含有英文字母的txt文档,接下来,编写程序统计字符以及计算熵。一维:#include#include

3、h>#include#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;

4、sampleSize=Stati(_FILEPATH,arr);PrintStati(arr,_ALAPHA_NUMBER*2);printf("");printf("samplesize:%d",sampleSize);printf("entrop:%f",EntropCompute(arr,sampleSize,_ALAPHA_NUMBER*2));return0;}voidPrintStati(intarr[],intsize){inti=0;while(i

5、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){b

6、reak;}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

7、]*1.0F)/sum;entrop+=(-probability*(log(probability)/log(2)));}i++;}returnentrop;}运行结果:二维:#include#include#include#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][

8、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("

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。