アットウィキロゴ

らn

package n2;
 
 
public class pro {
 
    double[] p=new double[11];
 double[] x=new double[101];
    double mu,sig;
    int[] z=new int[11];
    double[] xs=new double[101];
 
    public static void main(String[] args) {
        pro test=new pro();
    }
 
    pro(){
 
 
        int s;
 
        for(s=1;s<11;s++){
        p[s]=10;
        }
 
 
   for(s=1;s<101;s++){
 x[s]=10*Math.random()+1;
        }
 
 
 
 
        int delta;
 
        for(delta=1;delta<1000;delta++){
 
         double x1=0;
        for(s=1;s<101;s++){
        x1=x1+x[s];    
        }
 
    mu=x1/101;
    x1=0;
    for(s=1;s<101;s++){
        x1=x1+(x[s]-mu)*(x[s]-mu);    
        }
    x1=x1/99;
 
    sig=Math.sqrt(x1);
 
     double y=mu+sig*f();
int tr,trs;
 
trs=1;
double mind=99999;
  for(tr=1;tr<101;tr++){
 
     for(s=1;s<101;s++){
     xs[s]=x[s];    
     }
 
  xs[tr]=y;
 
count();
double d=k();
if(d<mind)trs=tr;
if(d<mind)mind=d;    
 
     }
         System.out.println(k());  
 
     x[trs]=y;
 
 
 
        }
 
 
    }
 
    void count(){
 
    int s,sx;
   int h=0;  
for(s=1;s<11;s++){
z[s]=0;
for(sx=1;sx<101;sx++){
h=0;
if(xs[s]>s)h=h+1;
if(xs[s]<s+1)h=h+1;
if(h==2)z[s]=z[s]+1;
}
}
 
 
    }
 
 
    double k(){
 
        int s;
        double p1=0;
        double[] f=new double[21];
 
        for(s=1;s<11;s++){
        p1=p1+p[s];
        }
 
 
        for(s=1;s<11;s++){
        f[s]=p[s]/p1;
        }
 
        double xx=0;
        for(s=1;s<11;s++){
        double cc=(double)z[s]/100;
        xx=xx+(cc-f[s])*(cc-f[s])/f[s];
        }
 
 
     return xx;   
 
 
    }
 
 
 
    double f(){
         double pi = Math.PI;
 
 
 
 
  double x1=Math.random();
  double x2=Math.random();
 
  double f1=Math.log(x1);
  double r=Math.sqrt(-2*f1)*Math.cos(2 * pi * x2);
 
 
 
 
 
 
 
    return r;
 
    }
 
 
 
 
}
 
最終更新:2016年03月13日 10:09