アットウィキロゴ

擬似個票データ

package lion;
 
import tool.*;
 
public class pro {
 
    int s,datanumber,sx;
    String[] data=new String[500];
    String str;
   int[] number=new int[500];
    String[] name=new String[500];
   String[] date=new String[500];
     int[] length=new int[500];
      int[] weight=new int[500];
       String[] bat=new String[500];
      String[] pitch=new String[500];
      int[] birth=new int[500];
       int[] age=new int[500];
 
       int[] count_a=new int[5];
       int[] count_p=new int[5];
        int[] count_w=new int[5];
        int[] count_l=new int[5];
 
        double[] rate_w=new double[3];
        double[] rate_l=new double[3];
 
        double[][] p=new double[3][3];
        int[][] x=new int[101][3];
          int[] y=new int[3];
     int c;
          double[][] ps=new double[3][3];
 
 
 
    public static void main(String[] args) {
        pro test=new pro();
    }
 
   pro(){ 
 
    faststep();
 
    int t;
 
    for(t=1;t<1000;t++){
 
    trial();
 
   c=select();     
  x[c][1]=y[1];
  x[c][2]=y[2];
    }
 
 
    check();
 
 
  for(s=1;s<3;s++){       
   System.out.println(ps[s][1]+","+ps[s][2]);     
  }
 
 
     for(s=1;s<3;s++){       
   System.out.println(p[s][1]+","+p[s][2]);     
  }
 
 
   }
   void check(){
 
       int s1,s2;
        int[][] count=new int[3][3];
 
 
   for(s=1;s<101;s++){
   s1=x[s][1];
   s2=x[s][2];
   if(s==c)s1=y[1];
   if(s==c)s2=y[2];
   count[s1][s2]=count[s1][s2]+1;     
   }   
 
   for(s=1;s<3;s++){
        for(sx=1;sx<3;sx++){
       ps[s][sx]=(double)count[s][sx]/100;
        }
   } 
 
   }
 
   int select(){
   int c,cx;
   double minv,v1;
    minv=9999;
   cx=0; 
   for(c=1;c<101;c++){    
   v1=replacev(c);
   if(v1<minv)cx=c;
   if(v1<minv)minv=v1;
   }
 
   return cx;
 
   }
 
 
 
   double replacev(int c){
   int s,sx;
   int[][] count=new int[3][3];
   double[][] q=new double[3][3];
 
       for(s=1;s<3;s++){
        for(sx=1;sx<3;sx++){
       count[s][sx]=0;
        }
   }
 
       int s1,s2;
 
   for(s=1;s<101;s++){
   s1=x[s][1];
   s2=x[s][2];
   if(s==c)s1=y[1];
   if(s==c)s2=y[2];
   count[s1][s2]=count[s1][s2]+1;     
   }   
 
   for(s=1;s<3;s++){
        for(sx=1;sx<3;sx++){
       q[s][sx]=(double)count[s][sx]/100;
        }
   }
 
   double e; 
 
   e=0;
     for(s=1;s<3;s++){
        for(sx=1;sx<3;sx++){
       e=e+(q[s][sx]-p[s][sx])*(q[s][sx]-p[s][sx]);
        }
   }
 
       return e;
 
   }
 
 
   void trial(){
 
       int s1,s2;
       double p1;
 
       s1=1;
        p1=Math.random();
        if(p1>rate_l[1])s1=2;
        s2=1;
        p1=Math.random();
        if(p1>rate_w[1])s2=2;
        y[1]=s1;
        y[2]=s2;
 
 
   }
 
void faststep(){
readfile sub=new readfile();
       sub.makedata("seibu.txt","SJIS");
       data=sub.data;
        datanumber=sub.datanumber;
 
        for(s=1;s<datanumber+1;s++){
        str=data[s];
        str=str.replace("	","△");
        String[] x=str.split("△");
        number[s]=Integer.parseInt(x[0]);
        name[s]=x[1].replace(" ","");
        date[s]=x[2];
        length[s]=Integer.parseInt(x[3]);
        weight[s]=Integer.parseInt(x[4]);
        bat[s]=x[5];
        pitch[s]=x[6];
        }
 
        for(s=1;s<datanumber+1;s++){
        str=date[s];
        str=str.replace(".",",");
        String[] x3=str.split(",");
        birth[s]=Integer.parseInt(x3[0]);
        }
 
        for(s=1;s<datanumber+1;s++){
        age[s]=2013-birth[s];
        }
 
 
 
 
        int a1;
        for(s=1;s<datanumber+1;s++){
        a1=1;
        if(age[s]>24)a1=2;
        if(age[s]>29)a1=3;
        count_a[a1]=count_a[a1]+1;
        }
 
        for(s=1;s<datanumber+1;s++){
        a1=1;
        if(pitch[s].indexOf("右")>-1)a1=2;
        count_p[a1]=count_p[a1]+1;
        }
 
        for(s=1;s<datanumber+1;s++){
        a1=1;
        if(weight[s]>79)a1=2;
        count_w[a1]=count_w[a1]+1;
        }
 
 
        for(s=1;s<datanumber+1;s++){
        a1=1;
        if(length[s]>179)a1=2;
        count_l[a1]=count_l[a1]+1;
        }
 
        for(s=1;s<3;s++){
        rate_l[s]=(double)count_l[s]/datanumber;
        }
 
         for(s=1;s<3;s++){
        rate_w[s]=(double)count_w[s]/datanumber;
        }
 
 
        int a2;
 
       for(s=1;s<datanumber+1;s++){
       a1=1;
       if(weight[s]>79)a1=2;
       a2=1;
       if(length[s]>179)a2=2;
        p[a1][a2]=p[a1][a2]+1;
        }
 
 
        for(s=1;s<3;s++){
        for(sx=1;sx<3;sx++){
        p[s][sx]=p[s][sx]/datanumber;
        }
        }
 
 
        double p1;
        int s1,s2;
 
        for(s=1;s<101;s++){
        s1=1;
        p1=Math.random();
        if(p1>rate_l[1])s1=2;
        s2=1;
        p1=Math.random();
        if(p1>rate_w[1])s2=2;
        x[s][1]=s1;
        x[s][2]=s2;
        }
 
 
 
}
}
 
最終更新:2014年03月19日 02:53