文档详情

《信息论与编码》课程实验报告.doc

发布:2017-02-10约1.48万字共26页下载文档
文本预览下载声明
本科生实验报告 实验课程 信息论与编码 学院名称 管理科学学院 专业名称 信息与计算科学 学生姓名 章乾 学生学号 201207020114 指导教师 范安东 实验地点 6C402 实验成绩 二〇 一四 年 十 月 二〇 一四 年 十一 月 实验一 离散信源信息量的计算(一) 1 实验内容 (1)熟悉利用srand()函数产生随机离散信源概率空间的方法; (2)计算随机离散信源的各种信息量:H(X)、H(XY)、H(Y); 2 数据结构与算法描述 变量/函数名 类 型 说 明 srand() 生成随机随机数 b[i][j] double 联合概率矩阵 PX[3] double 声明x的概率矩阵 PY[4] double 声明y的概率矩阵 3 实验数据与实验结果(可用文字描述或贴图的方式进行说明) 1)测试数据 随机生成数据 2)实验结果 4 程序代码清单(可直接将可运行源代码粘贴在下面的方框中) #includestdlib.h #includestdio.h #includetime.h #includemath.h int i,j,k; int sum=0; /*求和,为单位化准备*/ int a[3][4]; /*单位化前的准备矩阵,由随机数生成*/ double b[3][4]; /*单位化矩阵*/ double c[3][4]; /*声明条件矩阵1*/ double d[3][4]; /*声明条件矩阵2*/ double PX[3]={0}; /*声明x的概率矩阵*/ double PY[4]={0}; /*声明y的概率矩阵*/ double HXY=0; double hx=0; double hy=0; double yx=0; double xy=0; void main() { srand((unsigned)time(NULL)); /*为随机数的生成准备的种子*/ for(i=0;i3;i++) for(j=0;j4;j++) { a[i][j]=rand()%8+1; /*+1是因为避免概率为0,熵为无穷大*/ sum+=a[i][j]; } for(i=0;i3;i++) /*联合概率矩阵*/ for(j=0;j4;j++) b[i][j]=(double)a[i][j]/(double)sum; printf(联合概率矩阵:\n); for(i=0;i3;i++) /*输出联合概率矩阵*/ { for(j=0;j4;j++) printf(%f ,b[i][j]); } for(i=0;i3;i++) /*x的概率矩阵*/ for(j=0;j4;j++) { PX[i]+=b[i][j]; } printf(x的概率矩阵:\n); for(i=0;i3;i++) /*输出x的概率矩阵*/ { printf(PX[%d]=%f ,i+1,PX[i]); printf(\n); } /*y的概率矩阵*/ for(j=0;j4;j++) for(i=0;i3;i++) { PY[j]+=b[i][j]; } printf(y的概率矩阵:\n); for(j=0;j4;j++) /*输出y的概率矩阵*/ { printf(PY[%d]=%f ,j+1,PY[j]); printf(\n);
显示全部
相似文档