第三次作业 黄学才

一、参考书《数据压缩导论(第4版)》  Page 100   

      5, 6

5、给定如表4-9所示的概率模型,求出序列a1a1a3a2a3a1 的实值标签。

解:由上图可知,

p(a1)=0.2 ,p(a2)=0.3  ,p(a3)=0.5

FX(0)=0,FX(1)=0.2 ,FX(2)=0.5  ,FX(3)=1.0, U(0)=1 ,L(0)=0

因为X(ai)=i,    所以  X(a1)=1,X(a2)=2,X(a3)=3

由公式,L(n)=L(n-1)+(U(n-1)-L(n-1))Fx(xn-1)

u(n)=L(n-1)+(U(n-1)-L(n-1))Fx(xn)

第一次a1出现:

L(1)=L(0)+(U(0)-L(0))Fx(0)=0

U(1)=L(0)+(U(0)-L(0))Fx(1)=0.2

第二次出现a1出现:

L(2)=L(1)+(U(1)-L(1))Fx(0)=0

U(2)=L(1)+(U(1)-L(1))Fx(1)=0.04

第三次出现a3出现:

L(3)=L(2)+(U(2)-L(2))Fx(2)=0.02

U(3)=L(2)+(U(2)-L(2))Fx(3)=0.04

第四次a2出现:

L(4)=L(3)+(U(3)-L(3))Fx(1)=0.024

U(4)=L(3)+(U(3)-L(3))Fx(2)=0.03

第五次a3出现:

L(5)=L(4)+(U(4)-L(4))Fx(2)=0.027

U(5)=L(4)+(U(4)-L(4))Fx(3)=0.03

第六次a1出现:

L(6)=L(5)+(U(5)-L(5))Fx(0)=0.027

U(6)=L(5)+(U(5)-L(5))Fx(1)=0.0276

所以,序列a1a1a3a2a3a1的实值标签为:

T(113231)=(L(6)+ U(6))/2=0.0273;

#include<stdio.h>
#define N 100
int main()
{
    double T,tag;
    double F[4]={0.0,0.2,0.5,1.0};
    double l[N]={0.0},u[N]={1.0};
    int n,j,M[N];
    printf("输入标签的值:\n");
    scanf("%lf",&tag);
    printf("输入序列的长度:\n");
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        T=(tag-l[i-1])/(u[i-1]-l[i-1]);
        if(T>=F[0]&&T<=F[1])
        {
            M[i]=1;
            j=1;
        }
        else if(T>F[1]&&T<=F[2])
        {
            M[i]=2;
            j=2;
        }
        else if(T>F[2]&&T<=F[3])
        {
            M[i]=3;
            j=3;
        }
        u[i]=l[i-1]+(u[i-1]-l[i-1])*F[j];
        l[i]=l[i-1]+(u[i-1]-l[i-1])*F[j-1];
    }
    for(i=1;i<=n;i++)
    {
        printf("%d",M[i]);
    }
    printf("\n");
    return 0;
}

时间: 2024-08-28 22:27:01

第三次作业 黄学才的相关文章

第二次作业 黄学才

1. 参考书<数据压缩导论(第4版)>Page 66 3-2  利用程序huff_enc进行以下操作(在每种情况下,利用由被压缩图像生成的码本). (a) 对Sena.Sensin和Omaha图像时行编码. 答:(a)   Sena:压缩前 : 64.0 KB (65,536 字节)  —— 压缩后 : 56.1 KB (57,503 字节)     压缩比:88% Sensin: 压缩前 : 64.0 KB (65,536 字节) —— 压缩后 : 60.2 KB (61,649 字节)  

第一次作业 黄学才

#include<iostream> using namespace std; #include<cstdlib> #include<iomanip> #include<ctime> int main() { int p,i,j; char m[100][100]; srand(time(NULL)); cout<<setfill('0'); for(i=0;i<100;i++) { for(j=0;j<4;j++) { p=rand

第三次作业 黄金虫游戏

一.概述 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项目,必须由二人共

C语言——第三次作业

作业要求一 题目6-1 输出月份英文名 题目6-2 查找星期 题目6-3 计算最长的字符串长度 题目6-4 指定位置输出字符串 作业:C高级第三次作业(2)没有思路,知识点也没有明白,未完成. 作业要求二 题目6-1 输出月份英文名 1.设计思路 (1)主要描述题目算法 第一步:题目要求设计getmonth函数来返回输入的n相应月份的英文单词. 第二步:定义变量i,定义字符串数组,含有各个月份的英文单词. 第三步:使用for循环遍历数组,通过if判断来返回n相应的月份.因为输入的n为月份所以要大

第三次作业问卷

看到一个问卷不错,拟作为第三次作业的部分内容. 你对自己的未来有什么规划?做了哪些准备? 答:未来走一步算一步,计划赶不上变化,充实自己的知识,多增加一点自己经验,比起知识,更重要的是社交. 你认为什么是学习?学习有什么用?现在学习动力如何?为什么? 答:学习,就是知道一些以前不知道的事.厉害的人有两点:观察力和文化底蕴,学习就是为了增加知识储备,尽量不出现书到用时方恨少的情况.目前的学习动力很缺乏,因为一到大学开始想着混. 你感觉自己什么事情做的比较成功?有什么经验? 答:并不知道,似乎没有什

第三次作业三总结与心得

知识点总结: 1.调用幂函数pow()生成乘方表 power=pow(); 2.#include<math.h>程序中调用了数学函数,需包含头文件math.h 3.调用自定义函数fact(i)计算i! product=fact(i); 4.double fact(int n);自定义函数的声明,以分号结束 5.double product;变量product用于存放结果(阶乘的值) 6.return product;将结果送回主函数 7.定义求n!的函数double fact(int n)函数

魏昊卿——《Linux内核分析》第三周作业:Linux系统启动过程

魏昊卿——<Linux内核分析>第三周作业:Linux系统启动过程 一.实验部分 实验指导 使用实验楼的虚拟机打开shell 1 cd LinuxKernel/ 2 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入menu程序(<软件工程C编码实践篇>的课程项目),支持三个命令help.version和quit,您也可以添加更多的命令,对选修过<软件工程C编码实践篇>

第三次作业——个人作业——软件产品案例分析

第三次作业--个人作业--软件产品案例分析 评测产品:K米,安卓端 第一部分 调研,评测 评测 初体验 还没去KTV的时候,刚开始下了这个APP,我按正常软件一样,进行了注册功能,可到要写用户信息的时候,(可能是本着比较随意的思想,只想一直点,只填了一些以外使用其他APP时候的基本信息就一直点进一步),在上传用户头像的时候,我想直接跳过,没想到这一定要上传头像才可以啊!!!然后注册完后点进去,看了下K歌功能都不能用,看了一下用户的社区,发现大部分用户动态都是国庆的,这个时候已经10.17了,可见

职业规划第三次作业

看到一个问卷不错,拟作为第三次作业的部分内容. 你对自己的未来有什么规划?做了哪些准备? 答: 学好大学四年的课程,并积极参加各种活动来锻炼自己的能力.在实习期间认真学习工作经验,学习经验然后争取能自己创业 好好交友,多读书, 你认为什么是学习?学习有什么用?现在学习动力如何?为什么? 答:学习是通过他人的言传身教了解知识,将他人的认识转化为自己的知识.学习能够取他人之长补己之短,丰富自己的认知,还避免了闭门造车和坐井观天的错误.现在的学习动力一般,因为新学知识对我来说比较陌生. 你感觉自己什么