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

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

     答:我们根据映射一一关系:ai=i 得到序列a1a1a3a2a3a1 的实值标签就是求序列113231的实值标签。

     设上界 u(0) =1,  下界 l(0)=0,符号集A={a1,a2,a3},且P(a1)=0.2,P(a2)=0.3,P(a3)=0.5

    由于P(x=i)=P(ai),所以P(x=1)=P(a1)=0.2,   P(x=2)= P(a2)=0.3,  P(x=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(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)

    根据上面的递推公式得到的结果如下:

    该序列的第一个元素为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

    所以序列1 1标签的区间[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

    所以序列2 3标签的区间[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)

    综上可得序列a1a1a3a2a3a1 的实值标签为:

                                                           Tx(113231)= ( u(6) + l(6)   )/2

                                                                           =(0.0276+0.027)/2

                                                                           =0.0273

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

    #include<stdio.h>
    int main()
    {
     double tag=0.63215699;
     double l[100],u[100],F[100];
     double t;
     l[0]=0;
     u[0]=1;
        F[0]=0;
     F[1]=0.2;
     F[2]=0.5;
     F[3]=1;
     int M[100];
     int j;
     for(int k=1;k<=10;k++)
     {
        t=(double)(tag-l[k-1])/(u[k-1]-l[k-1]);
     if(t>=F[0]&&t<=F[1])
     {
      M[k]=1;
      j=1;
     }
        else if(t>F[1]&&t<=F[2])
     {
      M[k]=2;
      j=2;
     }
        else if(t>F[2]&&t<=F[3])
     {
       M[k]=3;
       j=3;
     }
      u[k]=l[k-1]+(u[k-1]-l[k-1])*F[j];
      l[k]=l[k-1]+(u[k-1]-l[k-1])*F[j-1];
     }
      for(int i=1;i<=10;i++)
      {
       printf("%d",M[i]);
      }
     return 0;
    }

     

    进行编码的结果为:3221213223

  • 相关阅读:
    ios中strong和weak的解释理解
    leetcode: Remove Duplicates from Sorted Array II [基本功]
    leetcode : Sort Colors
    leetcode : Search a 2D Matrix
    leetcode : Set Matrix Zeroes [技巧 follow up 逐步优化]
    leetcode : edit distance[hard][经典动态规划]
    leetcode : Climbing Stairs
    leetcode : Add Bianry 基本功 字符转整数
    leetcode : Plus One 基本功
    leetcode : Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/zhangchuan24/p/4818746.html
Copyright © 2011-2022 走看看