李秋红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值
");
    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		");        
        }
        else if(t>=Fa[1]&&t<=Fa[2])
        {
            fa_1=Fa[1];
            fa_2=Fa[2];
            printf("a2		");
        }
        else
        {
            fa_1=Fa[2];
            fa_2=Fa[3];
            printf("a3		");    
        }
        fa_1=L0+(U0-L0)*fa_1;
        fa_2=L0+(U0-L0)*fa_2;
        L0=fa_1;
        U0=fa_2;
        printf("%6.5lf		%6.5lf		",fa_2,fa_1);//上下界取5位小数
        printf("%9.8lf
",t);//t值取8位小数
        
    }
    printf("
");
}

 

原文地址:https://www.cnblogs.com/LiQiuHong/p/4812415.html