李秋红130705010066


解答:

 

解答:编码序列是:a3a2a2a1a2a1a3a2a2a3

截图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

代码:

#include<stdio.h>
#define n 10//定义字符长度
void main()
{
    double Fa[4]={0,0.2,0.5,1.0};//定义映射函数值
    double L0=0.0,U0=1.0;//初始化区间(0,1)
    double Tag=0.63215699,t;
    double fa_1,fa_2;
    printf("编码\t\t上界\t\t下界\t\tt值\n");
    for(int i=0;i<n;i++)
    {
        t=(double)(Tag-L0)/(U0-L0);
        if(t>=Fa[0]&&t<=Fa[1])
        {
            fa_1=Fa[0];
            fa_2=Fa[1];
            printf("a1\t\t");        
        }
        else if(t>=Fa[1]&&t<=Fa[2])
        {
            fa_1=Fa[1];
            fa_2=Fa[2];
            printf("a2\t\t");
        }
        else
        {
            fa_1=Fa[2];
            fa_2=Fa[3];
            printf("a3\t\t");    
        }
        fa_1=L0+(U0-L0)*fa_1;
        fa_2=L0+(U0-L0)*fa_2;
        L0=fa_1;
        U0=fa_2;
        printf("%6.5lf\t\t%6.5lf\t\t",fa_2,fa_1);//上下界取5位小数
        printf("%9.8lf\n",t);//t值取8位小数
        
    }
    printf("\n");
}

 

 

posted @ 2015-09-16 10:23  李秋红  阅读(236)  评论(0编辑  收藏  举报