アットウィキロゴ

p8885

package mata;
 
 
public class pro {
 
   int number;
   int[] point=new int[101];
   double[][] rate=new double[101][101];
   int[] x=new int[101];
   int subnumber;
   double[] mu=new double[101];
   double[] sig=new double[101];
 
    double[][] p=new double[101][101];
 
    public static void main(String[] args) {
        pro t=new pro();
    }
    pro(){
    int s;
 
number=100;    
 
    for(s=1;s<number+1;s++){
          point[s]=s;  
        }
 
 
    mu[1]=60;
    mu[2]=30;
    mu[3]=40;
    mu[4]=70;
    mu[5]=50;
 
    for(s=1;s<6;s++){
    sig[s]=10;
    }
 
    int tr;
    for(tr=1;tr<11;tr++){
 
    int sx;
    for(s=1;s<number+1;s++){
    for(sx=1;sx<6;sx++){
    p[s][sx]=f(point[s],mu[sx],sig[sx]);    
    }
    double p1=0;
    for(sx=1;sx<6;sx++){
    p1=p1+p[s][sx];    
    }
     for(sx=1;sx<6;sx++){
    rate[s][sx]=p[s][sx]/p1;
    }
 
    }
 
 
    for(sx=1;sx<6;sx++){
    mu[sx]=seek_mu(sx);
    sig[sx]=seek_sig(sx);
 
    }
 
    }    
 
     int sx;   
     for(s=1;s<101;s++){
    System.out.println(rate[s][4]);
    }
 
 
    }
  double seek_mu(int sx){
 
        double m1,m2;
        m1=0;
        int s;
        for(s=1;s<number+1;s++){
        m1=m1+point[s]*rate[s][sx];    
        }
 
        m2=0;
        for(s=1;s<number+1;s++){
        m2=m2+rate[s][sx];    
        }
 
 
 
        return m1/m2;
    }
 
     double seek_sig(int sx){
 
        double m1,m2;
        m1=0;
        int s;
        for(s=1;s<number+1;s++){
        m1=m1+(point[s]-mu[sx])*(point[s]-mu[sx])*rate[s][sx];    
        }
 
        m2=0;
        for(s=1;s<number+1;s++){
        m2=m2+rate[s][sx];    
        }
 
        double m3=m1/m2;
        m3=Math.sqrt(m3);
 
        return m3;
    }
 
 
 
     double f(double x1,double mux,double sigx){
double pi,f1,f2;
 
        pi=Math.PI;
 
        f2=Math.sqrt(2*pi*sigx*sigx);
        f1=-(x1-mux)*(x1-mux)/(2*sigx*sigx);
 
        return Math.exp(f1)/f2;
}
 
 
 
 
 
 
}
 
最終更新:2016年06月17日 02:55