zoukankan      html  css  js  c++  java
  • 第三次作业

    1、参考书《数据压缩导论(第4版)》  Page 100  5, 6 ?

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

           解:由表4-9,P(a1)=0.2,P(a2)=0.3,P(a3)=0.5.

                 定义随机变量X(ai)=i,就有X(a1)=1,X(a2)=2,X(a3)=3,所以序列a1a1a3a2a3a1为113231,

                 由累积密度函数,

                 得Fx(0)=0,  Fx(1)=P(a0)+ P(a1)=0.2,  Fx(2)=P(a1)+ P(a2)=0.5,   Fx(3)=P(a1)+ P(a2)+P(a3)=1,

                 因为公式,

                        u(k)=l(k-1)+(u(k-1)-l(k-1))*Fx(xk)

                        l(k)=l(k-1)+(u(k-1)-l(k-1))*Fx(xk-1)

                  可以得出上界和下界。初始化u(0) =1,  l(0)=0,

                 序列的第一个元素是1,             

                        u(1)=l(0)+(u(0)-l(0))*Fx(1)=0+(1-0)*0.2=0.2

                        l(1)=l(0)+(u(0)-l(0))*Fx(0)=0+(1-0)*0=0

                  所以标签在区间[0, 0.2)中;

                 序列的第二个元素是1,

                        u(2)=l(1)+(u(1)-l(1))*Fx(1)=0+(0.2-0)*0.2=0.04

                        l(2)=l(1)+(u(1)-l(1))*Fx(0)=0+(0.2-0)*0=0

                 所以标签在区间[0,0.04)中;

                 序列的第三个元素是3,

                        u(3)=l(2)+(u(2)-l(2))*Fx(3)=0+(0.04-0)*1 =0.04

                        l(3)=l(2)+(u(2)-l(2))*Fx(2)=0+(0.04-0)*0.5=0.02

                 所以标签在区间[0.02,0.04)中;

                 序列的第四个元素是2,

                        u(4)=l(3)+(u(3)-l(3))*Fx(2)=0.02+(0.04-0.02)*0.5 =0.03

                        l(4)=l(3)+(u(3)-l(3))*Fx(1)=0.02+(0.04-0.02)*0.2=0.024

                 所以标签在区间[0.024,0.03)中; 

                 序列的第五个元素是3,

                        u(5)=l(4)+(u(4)-l(4))*Fx(3)=0.024+(0.03-0.024)*1=0.03

                        l(5)=l(4)+(u(4)-l(4))*Fx(2)=0.024+(0.03-0.024)*0.5=0.027

                 所以标签在区间[0.027,0.03)中; 

                 序列的第六个元素是1,

                        u(6)=l(5)+(u(5)-l(5))*Fx(1)=0.027+(0.03-0.027)*0.2=0.0276

                        l(6)=l(5)+(u(5)-l(5))*Fx(0)=0.027+(0.03-0.027)*0=0.027

                 所以标签在区间[0.027,0.0276)中。

                 通常取区间的中点作为标签,所以序列113231的标签为:

                                   Tx(113231)=(0.027+0.0276)/2=0.0273,

                 即序列a1a1a3a2a3a1 的实值标签为0.0273。

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

           解:程序代码:

    #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("输入标签的值:");
        scanf("%lf",&tag);
        printf("输入序列的长度:");
        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("
    ");
        return 0;
    }

        输出结果:

  • 相关阅读:
    LA 2038 Strategic game(最小点覆盖,树形dp,二分匹配)
    UVA 10564 Paths through the Hourglass(背包)
    Codeforces Round #323 (Div. 2) D 582B Once Again...(快速幂)
    UVALive 3530 Martian Mining(贪心,dp)
    UVALive 4727 Jump(约瑟夫环,递推)
    UVALive 4731 Cellular Network(贪心,dp)
    UVA Mega Man's Mission(状压dp)
    Aizu 2456 Usoperanto (贪心)
    UVA 11404 Plalidromic Subsquence (回文子序列,LCS)
    Aizu 2304 Reverse Roads(无向流)
  • 原文地址:https://www.cnblogs.com/zhangyang528090150/p/4812512.html
Copyright © 2011-2022 走看看