版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、云南大学数学与统计学实验教学中心实验报告云南大学数学与统计学实验教学中心实验报告课程名称:计算机网络实验学期:2012-2013学年第二学期成绩:指导教师: 陆正福学生姓名:卢富毓 学生学号:20101910072实验名称:S.F.E编码实验实验要求: 必做实验学时:4学时实验编号: No.6实验日期:2013/3/28完成日期:2013/4/6学院:数学与统计学院专业 : 信息与计算科学年级: 2010级 一、实验目的:通过实验掌握S.F.E编码实验的构造算法,以及其重要思想。二、实验内容: S.F.E编码实验给定概率分布,编程实现S.F.E编码。提示:本算法的关键在于,修正的分布函数是纯小
2、数,可以采用乘基数取整法获得编码。三、实验环境Win7、Eclipse四、实验过程(请学生认真填写):实验过程、结果以及相应的解释:1. 预备知识相较于哈夫曼编码、唯一可译码来说,SFE编码是最容易编写以及理解的了。他需要用的函数如下:对于x的概率p(x)>0。其累积分布函数为:那么它的修正的累积分布就为:两者关系如图6.1:2. 实验过程A、 原理分析:通过上述函数计算出一个分布值。然后利用二进制表示出来。根据算出来的码长取出来的二进制就是码字具体如下图6.2:xP(x)F(x)Fba(x)Fba(x)的二进制l(x)码字10.250.250.1250.001300120.250.50
3、.3750.011301130.20.70.60.100114100140.150.850.7750.11000114110050.151.00.9250.111011041110B、 具体代码如下:/如6.2,若是将每一行看做是一个对象的话/我们先定义个SFE对象/SFE编码算法整体结构如下结果如下:X=1 2 3 4p(x)=0.25 0.5 0.125 0.125结果如图:X=1 2 3 4 5p(x)=0.25 0.25 0.2 0.15 0.15结果如图:具体代码如下:/* * author 卢富毓 * */package SFE;import java.util.Scanner;/
4、构澡一个SFE的结点对象class SFEobj double Px; /px概率double Fx; /F(x)函数值double Fbax; / Fba(x)double Lx; / 编码长度String Code; /编码/构造方法SFEobj() this.Px = 0;this.Fx = 0;this.Fbax = 0;this.Lx = 0;this.Code =""/求解SFE编码的类public class SFE public static int n; /全局变量定义变量节点的个数public static void main(String args)
5、new SFE().start(); /开始运行/SFE编码计算开始void start() System.out.print("请输入变量节点个数(即变量X):");Scanner in = new Scanner(System.in);n = in.nextInt(); / 变量个数SFEobj sfe = new SFEobjn;for (int i = 0; i < sfe.length; i+) sfei = new SFEobj();System.out.print("请输入变量节点值(即变量p(x):");for (int i = 0
6、; i < sfe.length; i+) sfei.Px = in.nextDouble();sfe = SFECode(sfe);Display(sfe);/求解SFE编码的具体算法SFEobj SFECode(SFEobj sfe) double sum = 0;/ 计算F(x)for (int i = 0; i < sfe.length; i+) for (int j = 0; j <= i; j+) sum = sum + sfej.Px;sfei.Fx = sum;sum = 0;/ 计算Fba(x)for (int i = 0; i < sfe.lengt
7、h; i+) if (i = 0) sfei.Fbax = sfei.Px/2; else for (int j = 0; j < i; j+) sum = sum + sfej.Px;sfei.Fbax = sum + sfei.Px/2;sum = 0;/ 计算l(x)for (int i = 0; i < sfe.length; i+) sfei.Lx = Math.ceil(Math.log(1 / sfei.Px)/Math.log(2) + 1;/ fba(x)转为二进制for (int i = 0; i < sfe.length; i+) sfei.Code =
8、 ToBinary(sfe, i);return sfe;/ 转换为二进制的方法private String ToBinary(SFEobj sfe, int i) int k = (int) sfei.Lx;double l = sfei.Fbax;double m = 0;while (k > 0) k-;l = l * 2;m = l;sfei.Code = sfei.Code + (int)m;if (l >= 1) l = l - 1;return sfei.Code;/ 输出函数private void Display(SFEobj sfe) System.out.pr
9、intln("r-得到结果如下-");System.out.println("xtp(x)tF(x)tFba(x)tl(x)tCodeword");for (int i = 0; i < sfe.length; i+) System.out.println(i + "t" + sfei.Px + "t" + sfei.Fx + "t"+ String.format("%.3f", sfei.Fbax) + "t"+ (int) sfei.Lx + "t" + sfei.Code
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东中泰证券2026届春季校园招聘备考题库及答案详解(夺冠系列)
- 2026安徽省皖能聚合智慧能源有限公司所属子公司社会招聘2人备考题库附答案详解(培优)
- 2026江西铜业集团建设有限公司春季校园招聘7人备考题库及答案详解1套
- 2026浙江宁波市北仑区民政事务中心招聘2人备考题库含答案详解(培优b卷)
- 2026浙江省对外服务有限公司招聘劳务派遣人员1人备考题库含答案详解(突破训练)
- 2026辽渔集团有限公司社会招聘37人备考题库含答案详解(巩固)
- 2026湖南益阳职业技术学院招聘事业单位人员6人备考题库含答案详解(完整版)
- 2026湖北荆州机场建设管理有限公司助理贵宾服务员岗位招聘笔试历年参考题库附带答案详解
- 2026海信集团全球校园招聘笔试历年参考题库附带答案详解
- 2026江苏苏州市昆山市淀山湖镇镇管企业招聘13人笔试历年参考题库附带答案详解
- 湘教版高中数学必修二知识点清单
- 2024年山东出版集团有限公司招聘笔试参考题库含答案解析
- 2023年10月广西南宁市青秀区建政街道办事处公开招聘5人笔试历年高频考点(难、易错点荟萃)附带答案详解
- 2023年初级会计职称《初级会计实务》真题
- (中职)电子技术基础与技能教ppt教学课件汇总完整版电子教案
- 氢气管道施工技术管理及质量控制
- 光拍频法测量光速
- 诊断学恶心呕吐呕血便血腹痛PPT
- 原厂操作IBM v5000,v7000换盘
- 人参的鉴定专题知识
- 管理系统中计算机应用
评论
0/150
提交评论