package p5;
public class pro {
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[] avg_mu=new double[30];
double[] avg_sig=new double[30];
double[] y_max=new double[30];
double[] y_min=new double[30];
int datanumber;
int[] point=new int[30];
public static void main(String[] args) {
pro y=new pro();
}
pro(){
int s;
datanumber=21;
for(s=1;s<datanumber+1;s++){
y_min[s]=50*s-50;
y_max[s]=50*s;
point[s]=24;
}
y_max[datanumber]=2000;
number=10;
for(s=1;s<number+1;s++){
mu[s]=100*s;
sig[s]=100;
mux[s]=100*s;
sigx[s]=100;
p[s]=0.1;
}
nike sub=new nike();
sub.mu=mu;
sub.sig=sig;
sub.mux=mux;
sub.sigx=sigx;
sub.p=p;
sub.point=point;
sub.number=number;
sub.datanumber=datanumber;
sub.y_max=y_max;
sub.y_min=y_min;
sub.makedata();
avg_mu=sub.avg_mu;
avg_sig=sub.avg_sig;
for(s=1;s<datanumber+1;s++){
System.out.println(avg_mu[s]+","+avg_sig[s]);
}
}
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;
}
}
package p5;
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];
double[] y_max=new double[30];
double[] y_min=new double[30];
int[] point=new int[100];
int datanumber;
void makedata(){
int s;
for(s=1;s<10001;s++){
int sx=randx();
y1[s]=sample(mu[sx],sig[sx]);
y2[s]=sample(mux[sx],sigx[sx]);
}
for(s=1;s<datanumber+1;s++){
mini sub=new mini();
sub.y1=y1;
sub.y2=y2;
sub.makedata(point[s],y_min[s],y_max[s]);
avg_sig[s]=sub.sigp;
avg_mu[s]=sub.mup;
}
}
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;
}
}
package p5;
public class mini{
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 sigp,mup;
void makedata(int number_tr,double tr1,double tr2){
int s;
int sx=0;
for(s=1;s<10001;s++){
int h=0;
if(y1[s]>tr1)h=h+1;
if(y1[s]<tr2)h=h+1;
if(h==2)sx=sx+1;
if(h==2)y3[sx]=y2[s];
}
int de=sx;
double a1=0;
for(s=1;s<de+1;s++){
a1=a1+y3[s];
}
a1=a1/de;
double s1=0;
for(s=1;s<de+1;s++){
s1=s1+(y3[s]-a1)*(y3[s]-a1);
}
s1=Math.sqrt(s1/de);
for(s=1;s<10001;s++){
double pc=0;
for(sx=1;sx<number_tr+1;sx++){
pc=pc+sample(a1,s1);
}
y4[s]=pc/number_tr;
}
double a2=0;
for(s=1;s<10001;s++){
a2=a2+y4[s];
}
a2=a2/10000;
double s2=0;
for(s=1;s<10001;s++){
s2=s2+(y4[s]-a2)*(y4[s]-a2);
}
s2=Math.sqrt(s2/10000);
sigp=s2;
mup=a2;
}
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;
}
}
最終更新:2016年12月20日 11:03