アットウィキロゴ

あsじお

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