下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、桂林电子科技大学 数学与计算科学学院实验报告 实验室:06406 实验日期:2015年12月12日院(系)数学与计算科学学号1200710218姓名韩尚颖成绩课程名称信息与编码实验实验项目名 称实验一 信息熵的计算指导教师一 ,实验目的1. 将一大段英文文章作为要统计的样本文件2. 对样本文件进行一维概率统计,并计算出信源熵及冗余度3. 对样本文件进行二维概率统计,并计算出信源熵及冗余度二,实验原理 在进行统计时,首先要在程序中打开文件,然后对文件中的字符读入程序中,进行统计。而在二维统计时,尤其要求对文件的指针操作要熟悉。如读入 “newspaper”时,应该依次读入 “ne ew ws s
2、p pa ap pe er”,而如果使用fgetc()等命令读文件时,读入的是 “ne ws pa pe” 为了依次读入“ne ew ws sp pa ap pe er”,就要求在每次调入fgetc()等命令后,再将文件指针往后退一步,即要求学生能熟练使用fseek()命令进行指针定位操作。三,使用仪器,材料计算机,Visual C+ 6.0四,实验内容与步骤(过程及结果截图)首先,下载或者建立一个含有英文字母的txt文档,接下来,编写程序统计字符以及计算熵。一维:#include<stdio.h>#include<string.h>#include<math.h
3、>#define _FILEPATH "F:xinhao与编码0.txt"#define _ALAPHA_NUMBER (int)('z'-'a'+1)void PrintStati(int arr,int size);int Stati(const char *filePath,int arr);float EntropCompute(int arr,int sum,int arrSize);int main()int arr_ALAPHA_NUMBER*2=0;int sampleSize=0;sampleSize=Stati(_F
4、ILEPATH,arr);PrintStati(arr,_ALAPHA_NUMBER*2);printf("n");printf("sample size:%dn",sampleSize);printf("entrop:%fn",EntropCompute(arr,sampleSize,_ALAPHA_NUMBER*2);return 0;void PrintStati(int arr,int size)int i=0;while(i<size)if(i<_ALAPHA_NUMBER)printf("%c:%d
5、",i+'a',arri);elseprintf("%c:%d ",i+'A'-_ALAPHA_NUMBER,arri);i+;int Stati(const char *filePath,int arr)FILE *pFile=NULL;char c;int sum=0;pFile=fopen(filePath,"rb");if(pFile=NULL)printf("fail to open file");return 0;while(1)c=fgetc(pFile);if(c=EOF)br
6、eak;if(c>='a'&&c<='z')arrc-'a'+;sum+;else if(c>='A'&&c<='z')arr_ALAPHA_NUMBER+c-'A'+;sum+;fclose(pFile);return sum;float EntropCompute(int arr,int sum,int arrSize)float entrop=0.0F;int i=0;float probability=0;while(i<arrS
7、ize)if(arri!=0)probability=(arri*1.0F)/sum;entrop+=(-probability*(log(probability)/log(2);i+;return entrop;运行结果: 二维:#include <stdio.h>#include <math.h>#include <stdlib.h>#define NULL 0int charge(char c)int n; if(c>=65&&c<=90) c=c+32; if( c>+97&&c<=122) n
8、=c-97; return n; else return -1;int main() int count2626=0; char zifu1,zifu2; int i,n,m,j; int sum=0; float q, sum1=0; FILE *fp; if(fp=fopen("F:xinhao与编码0.txt", "rb")=NULL) printf(" can't open file!n"); exit(0); while(!feof(fp) zifu1=fgetc(fp); n=charge(zifu1); if(n
9、!= -1) zifu2=fgetc(fp); m=charge(zifu2); if(m!= -1) countnm+; fseek(fp,-1,1); fclose(fp); for(i=0;i<26;i+) for(j=0;j<26;j+) sum=sum+countij; printf("the number of all the code is %dn", 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,countij,countij*100/q); printf("n"); for(i=0;i<26;i+) for(j=0;j<26;j+) if(countij)sum1=sum1+(float)(countij/q)*log10(1/(double)(countij /q)/log10(doub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中音乐七年级上册《演奏:学吹竖笛(一)-音阶之美》单元起始课教学设计
- 九年级下册英语Unit 10跨文化交际写作进阶课:从文化认知到得体表达(Section B 3aSelf Check第5课时)教学设计
- 初中七年级历史下册 第14课 明朝的统治 教学设计
- 初中七年级生物学下册“生物圈中的人”单元整体教学设计
- 2025至2030中国食品添加剂行业标准修订及健康影响评估分析研究报告
- 公司员工季度培训计划及考核标准
- 2025至2030包装行业消费升级趋势及高端包装需求与市场增长研究报告
- 2025至2030休闲食品行业消费升级趋势及渠道变革战略研究报告
- 2026年广东科学技术职业学院单招职业技能考试题库附参考答案详解(达标题)
- 2026年广东交通职业技术学院单招职业倾向性测试题库含答案详解ab卷
- OpenClaw发展研究报告
- 2025中国东方资产管理股份有限公司总部部门分公司高级管理人员社会招聘笔试历年典型考题及考点剖析附带答案详解2套试卷
- 制造业生产安全操作规范
- 2026石嘴山市能达建设发展有限公司招聘3人笔试参考题库及答案解析
- 《冠心病诊断与治疗指南(2025年版)》
- 2025-2026学年人教PEP版(新教材)小学英语三年级下册教学计划及进度表
- 2026年-(教科版2026新教材)科学一年级下册全册教学设计-新版
- (081000)信息与通信工程专业考研复试高频面试题
- 2026年小红书文旅兴趣出游种草指南
- 2026届云南省普通高中学业水平选择性考试调研测试政治试题
- GB/T 20839-2025智能运输系统通用术语
评论
0/150
提交评论