5.
从概率模型可知:
Fx(k)=0,k≤0,Fx(1)=0.2,Fx(2)=0.5,Fx(3)=1,Fx(k)=1,k>3
设l(0)=0,u(0)=1,该序列的第一个元素为1,则:
l(1)=0+(1-0)0=0;
u(1)=0+(1-0)0.2=0.2
所以该标签则在区间[0,0.2)中。
该序列的第二个元素为1,则:
l(2)=0+(0.2-0)0=0;
u(2)=0+(0.2-0)0.2=0.04
所以该标签则在区间[0,0.04)中。
该序列的第三个元素为3,则:
l(3)=0+(0.04-0)0.5=0.02;
u(3)=0+(0.04-0)1=0.04
所以该标签则在区间[0.02,0.04)中。
该序列的第四个元素为2,则:
l(4)=0.02+(0.04-0.02)0.2=0.024;
u(4)=0.02+(0.04-0.02)0.5=0.03
所以该标签则在区间[0.024,0.03)中。
该序列的第五个元素为3,则:
l(5)=0.024+(0.03-0.024)0.5=0.027;
u(5)=0.024+(0.03-0.024)1=0.03
所以该标签则在区间[0.027,0.03)中。
该序列的第六个元素为1,则:
l(6)=0.027+(0.03-0.027)0=0.027;
u(6)=0.027+(0.03-0.027)0.2=0.0276
所以该标签则在区间[0.027,0.0276)中。
生成序列113231的标签如下:
Tx(113231)=(0.027+0.0276)/2=0.0273
即Tx(a1a1a3a2a3a1)=(0.027+0.0276)/2=0.0273
6.
#include<iostream>
using namespace std;
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 x=0.63215699;
for(int a=1;a<11;a++)
{
for(int b=1;b<4;b++)
{
L[a]=L[a-1]+(U[a-1]-L[a-1])*F[b-1];
U[a]=L[a-1]+(U[a-1]-L[a-1])*F[b];
if(x>=L[a]&&x<U[a])
{
cout<<b;
break;
}
}
}
return 0;
}