package gon;
public class nike{
int number;
double[] mu=new double[11];
double[] sig=new double[11];
double[] mux=new double[11];
double[] sigx=new double[11];
double[] p=new double[11];
double[] y1=new double[10001];
double[] y2=new double[10001];
double[] y3=new double[10001];
double[] y4=new double[10001];
double[] avg_mu=new double[30];
double[] avg_sig=new double[30];
int[] y_max=new int[30];
int[] y_min=new int[30];
int[] point=new int[100];
int datanumber;
double[] avg=new double[30];
double[][] mat_p=new double[12][23];
double[][] ps=new double[23][12];
double[] mu_rank=new double[24];
double[] sig_rank=new double[24];
double makedata(){
int s;
int k;
for(k=1;k<11;k++){
double p1=0;
for(s=0;s<2000;s++){
p1=p1+f(s,mu[k],sig[k]);
}
int tr=6;
for(tr=1;tr<22;tr++){
int tr1=y_min[tr];
int tr2=y_max[tr];
double p2=0;
for(s=tr1;s<tr2;s++){
p2=p2+f(s,mu[k],sig[k]);
}
mat_p[k][tr]=p2/p1;
}
}
int sx;
for(s=1;s<22;s++){
for(sx=1;sx<11;sx++){
ps[s][sx]=0;
}
}
for(s=1;s<22;s++){
for(sx=1;sx<11;sx++){
ps[s][sx]=ps[s][sx]+p[sx]*mat_p[sx][s];
}
}
for(s=1;s<22;s++){
double m1=0;
double m2=0;
for(sx=1;sx<11;sx++){
m1=m1+ps[s][sx];
m2=m2+ps[s][sx]*mux[sx];
}
mu_rank[s]=m2/m1;
}
for(s=1;s<22;s++){
double m1=0;
double m2=0;
for(sx=1;sx<11;sx++){
m1=m1+ps[s][sx];
m2=m2+ps[s][sx]*sigx[sx];
}
sig_rank[s]=m2/m1;
}
double z=0;
for(s=1;s<22;s++){
z=z+point[s]*f(avg[s],mu_rank[s],sig_rank[s]/Math.sqrt(point[s]));
}
return z;
}
double sample(double mumu,double sigsig) {
double pi = Math.PI;
double p1 = 0;
double p2 = 0;
double x1=Math.random();
double x2=Math.random();
double f1=Math.log(x1);
double r=Math.sqrt(-2*f1)*Math.cos(2 * pi * x2);
double z=mumu+sigsig*r;
return z;
}
int randx(){
int s;
double[] px=new double[100];
px[1]=p[1];
for(s=2;s<number+1;s++){
px[s]=px[s-1]+p[s];
}
double m1=Math.random();
int nn=1;
for(s=1;s<number;s++){
if(m1>px[s])nn=s;
}
return nn;
}
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月21日 15:36