アットウィキロゴ

sぺえf

package ren2;
 
 
public class pro {
 
    double[] p=new double[11];
    double[] y=new double[11001];
  double mu,sig;
 
    public static void main(String[] args) {
        pro t=new pro();
    }
    pro(){
 
        int s;
        for(s=1;s<11;s++){
        p[s]=0.1;    
        }
 
 
        int tr=0;
    for(tr=1;tr<10001;tr++){
 
        int[] x=new int[101];
 
        for(s=1;s<11;s++){
     x[s]=0;    
     }
 
 
     for(s=1;s<101;s++){   
        int sx=randx(); 
        x[sx]=x[sx]+1;
      }
 
     double d=0;
     for(s=1;s<11;s++){
     d=d+(x[s]-100*p[s])*(x[s]-100*p[s]);    
     }
 
     y[tr]=d;
 
    }
 
double z=0;    
for(s=1;s<10001;s++){
z=z+Math.log(y[s]);    
}
mu=z/10000;    
 
z=0;
for(s=1;s<10001;s++){
z=z+(Math.log(y[s])-mu)*(Math.log(y[s])-mu);    
}
z=z/10000;
sig=Math.sqrt(z);
 
double yy=Math.log(y[1]);
System.out.println(yy+","+f(yy,mu,sig));
System.out.println(mu+","+sig);
 
 
 
    }
 
 
 
    int randx(){
 
        int s;
        double[] px=new double[11];
        px[0]=0;
        for(s=1;s<11;s++){
        px[s]=px[s-1]+p[s];    
        }
 
        double r1=px[10]*Math.random();
 
        int sx=1;
        for(s=1;s<10;s++){
        if(r1>px[s])sx=s+1;  
        }
 
 
        return sx;
 
    }
 
 
      double f(double x,double mux,double sigx){
double pi,f1,f2;
 
        pi=Math.PI;
 
        f2=Math.sqrt(2*pi*sigx*sigx);
        f1=-(x-mux)*(x-mux)/(2*sigx*sigx);
 
        return Math.exp(f1)/f2;
}
 
 
 
}
 
最終更新:2016年12月19日 17:28