• 第三次作业


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

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

        

    答: 由题意可得:P(a1)=0.2,P(a2)=0.3,P(a3)=0.5

          所以: 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(n)=l(n-1)+(u(n-1)-l(n-1))*Fx(xn)

           l(n)=l(n-1)+(u(n-1)-l(n-1))*Fx(xn-1)

    因为要求出序列a1a1a3a2a3a1 的实值标签,即求序列113231的实值标签。

    所以序列号1在的区间为:

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

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

    序列号11在的区间为:

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

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

    序列号113在的区间为:

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

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

    序列号1132在的区间为:

    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

    序列号11323在的区间为:

    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

    序列号113231在的区间为:

    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

    所以有序列a1a1a3a2a3a1 的实值标签为: Tx(113231)= ( u(6) + l(6)   )/2

                                                                           =(0.0276+0.027)/2

                                                                           =0.0546/2

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

    // 1.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    
    #include<iostream>
    using namespace std;
    #define length 11
    int main()
    {
        double u[11],l[11],F[4];
        u[0]=1;l[0]=0;
        F[0]=0;F[1]=0.2;F[2]=0.5;F[3]=1;
        double tag=0.63215699;
       cout<<"标签为0.63215699的长度为10的序列的解码为:"<<'
    ';
        for(int x=1;x<length;x++)
        {
            for(int n=1;n<4;n++)
            {
                l[x]=l[x-1]+(u[x-1]-l[x-1])*F[n-1];
                u[x]=l[x-1]+(u[x-1]-l[x-1])*F[n];
                if(tag>=l[x]&&tag<u[x])
                {
                    cout<<'a'<<'['<<n<<']';
                    break;
                }
                    
            }        
        }
        cout<<'
    ';
        return 0;
    }

    
    
  • 相关阅读:
    MVC ORM 架构
    Kubernetes 第八章 Pod 控制器
    Kubernetes 第七章 Configure Liveness and Readiness Probes
    Kubernetes 第六章 pod 资源对象
    Kubernetes 第五章 YAML
    Kubernetes 核心组件
    Kubernetes 架构原理
    Kubernetes 第四章 kubectl
    Kubernetes 第三章 kubeadm
    yum 配置及yum 源配置
  • 原文地址:https://www.cnblogs.com/yuanzhanxiang/p/4812603.html
Copyright © 2020-2023  润新知