• 第三次作业


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

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

    解答:由题可知:

      a1,a2,a3的概率分别为: P(a1)=0.2        P(a2)=0.3           P(a3)=0.5

      所以就有:F(a0)=0       F(a1)=0.2       F(a2)=0.5       F(a3)=1

    根据公式   U(k) =L(k-1) +(U(k-1) -L(k-1) )*Fx(ak)

                  U(k) =L(k-1) +(U(k-1) -L(k-1) )*Fx(ak-1)

    另注:U(0)=1       L(0)=0

    有:

    第一个出现的是a1

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

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

    第二个出现的是a1

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

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

    第三个出现的是a3

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

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

    第四个出现的是a2

        U(4) =L(3) +(U(3) -L(3) )*Fx(a2)=0.03

        L(4) =L(3) +(U(3) -L(3) )*Fx(a1)=0.024

    第五个出现的是a3

       U(5) =L(4) +(U(4) -L(4) )*Fx(a3)=0.03

        L(5) =L(4) +(U(4) -L(4) )*Fx(a2)=0.027

    第六个出现的是a1

       U(6) =L(5) +(U(5) -L(5) )*Fx(a1)=0.0276

        L(6) =L(5) +(U(5) -L(5) )*Fx(a0)=0.027

    则,序列a1a1a3a2a3a1的实值标签如下

         TX(a1a1a3a2a3a1)=(U6+L6)/2=0.0273

    6.对于表4-9给出的概率模型,对于一个标签为0.63215699的长度为10的序列进行解码。

    解:根据题意可以得到的程序如下:

    #include<stdio.h>

    int main()
    {
    int m[20];
    double F0=0,F1=0.2,F2=0.5,F3=1.0;
    double tag=0.63215699,t1;
    double l[20],u[20]; //l和u分别表示下界和上界
    l[0]=0;
    u[0]=1.0;
    for(int j=1;j<=10;j++)
    {
    t1=(tag-l[j-1])/(u[j-1]-l[j-1]);
    if(t1>F0&&t1<F1)
    {
    l[j]=l[j-1]+(u[j-1]-l[j-1])*F0;
    u[j]=l[j-1]+(u[j-1]-l[j-1])*F1;
    m[j]=1;
    }
    else if(t1>F1&&t1<F2)
    {
    l[j]=l[j-1]+(u[j-1]-l[j-1])*F1;
    u[j]=l[j-1]+(u[j-1]-l[j-1])*F2;
    m[j]=2;
    }
    else
    {
    l[j]=l[j-1]+(u[j-1]-l[j-1])*F2;
    u[j]=l[j-1]+(u[j-1]-l[j-1])*F3;
    m[j]=3;
    }
    printf("%d ",m[j]);
    }

    return 0;
    }

    调试得到的结果是3221213223。

  • 相关阅读:
    Mac修改默认的电子邮箱客户端
    记录下生活:ETC卡充值(上海)
    Mac下卸载Mysql数据库
    网络爬虫学习笔记 1
    Clock置换算法
    用random.randint函数时 报错 'str' object cannot be interpreted as an integer问题
    分页式存储管理
    初学C++ vector 容器
    马一个讲devc++调试讲的很好的视频
    一些笔记(xss 跨站脚本攻击)
  • 原文地址:https://www.cnblogs.com/zhangcui/p/4812535.html
Copyright © 2020-2023  润新知