package bs;
public class pro {
int s;
int[] x=new int[11];
double[] q=new double[11];
double[] p=new double[11];
int[] c=new int[11];
double[] z=new double[11];
double[] y=new double[10001];
public static void main(String[] args) {
pro t=new pro();
}
pro(){
for(s=1;s<11;s++){
p[s]=0.1;
q[s]=0.1;
}
q[1]=0.105;
q[10]=0.095;
int sx,tr;
for(tr=1;tr<1001;tr++){
for(s=1;s<11;s++){
c[s]=0;
}
for(s=1;s<10001;s++){
sx=randx();
c[sx]=c[sx]+1;
}
for(s=1;s<11;s++){
z[s]=(double)c[s]/10000;
}
double x1=0;
for(s=1;s<11;s++){
x1=x1+(z[s]-q[s])* (z[s]-q[s])/q[s];
}
y[tr]=x1;
}
double x2=0;
for(s=1;s<11;s++){
x2=x2+(p[s]-q[s])* (p[s]-q[s])/q[s];
}
System.out.println(x2);
int s1,s2;
s1=0;
s2=0;
for(s=1;s<1001;s++){
if(y[s]>x2)s1=s1+1;
System.out.println(y[s]);
s2=s2+1;
}
double r2=(double)s1/s2;
System.out.println(s1+","+r2);
}
int randx(){
double[] qs=new double[11];
int s;
qs[1]=q[1];
for(s=2;s<11;s++){
qs[s]=q[s]+qs[s-1];
}
double r1=qs[10]*Math.random();
int sx=1;
for(s=1;s<11;s++){
if(r1>qs[s])sx=s+1;
}
return sx;
}
}
最終更新:2016年12月07日 16:56