アットウィキロゴ

bbbb9

package c5;
 
import tool.*;
 
public class pro {
 
    int s,datanumber;
    String[] data=new String[500];
    int[] y1=new int[100];
    int[] y2=new int[100];
 
    int[] q1=new int[10000];
    int[] q2=new int[10000];
 
    int[] p1=new int[10000];
    int[] p2=new int[10000];
 
    int[] c=new int[10000];
 
 
 
 
 
    int xx,yy;
 
    public static void main(String[] args) {
        pro t=new pro();
    }
    pro(){
 
        readfile sub2=new readfile();
        sub2.makedata("data.csv","UTF-8");
        data=sub2.data;
        datanumber=sub2.datanumber;
 
 
        for(s=2;s<datanumber+1;s++){
       String[] x=data[s].split(",");
       y1[s-1]=Integer.parseInt(x[1]);  
       y2[s-1]=Integer.parseInt(x[2]);  
 
        }
 
        datanumber=datanumber-1;
 
        System.out.println(datanumber);
 
        for(s=1;s<101;s++){
        step();    
        q1[s]=xx;    
        q2[s]=yy;
        }
 
 
 
        int tr;
 
        for(tr=1;tr<10001;tr++){ 
 
            fast sub5=new fast();
            sub5.y1=y1;
            sub5.datanumber=datanumber;
            sub5.q1=q1;
             sub5.q2=q2;
            sub5.makedata();
            q1=sub5.q1;
            q2=sub5.q2;
 
            sec sub6=new sec();
            sub6.y2=y2;
            sub6.datanumber=datanumber;
            sub6.q2=q2;
            sub6.q1=q1;
            sub6.makedata();
            q2=sub6.q2;
            q1=sub6.q1;
 
 
        }
 
 
 
        for(s=1;s<22;s++){
 
    }
 
 
    }
 
    void rep(int r){
 
    for(s=1;s<101;s++){
    p1[s]=q1[s];    
    p2[s]=q2[s];
    }    
    p1[r]=xx;
    p2[r]=xx;
 
 
    }
 
 
    void step(){
 
        double n=21*Math.random(); 
        xx=(int)n+1;
        n=21*Math.random(); 
        yy=(int)n+1;
 
    }
 
 
 
 
}
 
 
 
package c5;
 
 
 
public class fast{
 
    int s,datanumber;
    String[] data=new String[500];
    int[] y1=new int[100];
    int[] y2=new int[100];
 
    int[] q1=new int[10000];
    int[] q2=new int[10000];
 
    int[] p1=new int[10000];
    int[] p2=new int[10000];
 
    int[] c=new int[10000];
 
 
 
 
 
    int xx,yy;
 
 
    void makedata(){
 
 
 
 
 
        step();
 
        int sx,sxs;
        sxs=0;
        double minx=999999;
        for(sx=1;sx<101;sx++){
        rep(sx);
        double d1=cal();
        if(d1<minx)sxs=sx;
        if(d1<minx)minx=d1;
    } 
 
 
 
       System.out.println("a"+minx);
 
        q1[sxs]=xx;
        q2[sxs]=yy;
 
 
 
 
    }
 
    void rep(int r){
 
    for(s=1;s<101;s++){
    p1[s]=q1[s];    
    p2[s]=q2[s];
    }    
    p1[r]=xx;
    p2[r]=xx;
 
 
    }
 
 
    void step(){
 
        double n=21*Math.random(); 
        xx=(int)n+1;
        n=21*Math.random(); 
        yy=(int)n+1;
 
    }
 
 
 
 
   double cal(){
 
       int s,z;
       z=0;
       for(s=1;s<22;s++){
       z=z+y1[s];
       }
       int[] z2=new int[500];
       for(s=1;s<101;s++){
       int sx=p1[s];
       z2[sx]=z2[sx]+1;
       }
       double z1=0;
 
       for(s=1;s<22;s++){
       z1=z1+(y1[s]-z*z2[s]/100)*(y1[s]-z*z2[s]/100);    
       }
 
       z1=z1/21;
     z1=Math.sqrt(z1);  
 
       return z1;
   } 
 
 
 
}
 
 
 
 
public class sec{
 
    int s,datanumber;
    String[] data=new String[500];
    int[] y1=new int[100];
    int[] y2=new int[100];
 
    int[] q1=new int[10000];
    int[] q2=new int[10000];
 
    int[] p1=new int[10000];
    int[] p2=new int[10000];
 
    int[] c=new int[10000];
 
 
 
 
 
    int xx,yy;
 
 
    void makedata(){
 
 
 
 
 
        step();
 
        int sx,sxs;
        sxs=0;
        double minx=999999;
        for(sx=1;sx<101;sx++){
        rep(sx);
        double d1=cal();
        if(d1<minx)sxs=sx;
        if(d1<minx)minx=d1;
    } 
 
        System.out.println("b"+minx);
 
 
        q1[sxs]=xx;
        q2[sxs]=yy;
 
 
 
 
    }
 
    void rep(int r){
 
    for(s=1;s<101;s++){
    p1[s]=q1[s];    
    p2[s]=q2[s];
    }    
    p1[r]=xx;
    p2[r]=xx;
 
 
    }
 
 
    void step(){
 
        double n=21*Math.random(); 
        xx=(int)n+1;
        n=21*Math.random(); 
        yy=(int)n+1;
 
    }
 
 
 
 
   double cal(){
 
       int s,z;
       z=0;
       for(s=1;s<22;s++){
       z=z+y2[s];
       }
       int[] z2=new int[500];
       for(s=1;s<101;s++){
       int sx=p2[s];
       z2[sx]=z2[sx]+1;
       }
       double z1=0;
 
       for(s=1;s<22;s++){
       z1=z1+(y2[s]-z*z2[s]/100)*(y2[s]-z*z2[s]/100);    
       }
 
       z1=z1/21;
     z1=Math.sqrt(z1);  
 
       return z1;
   } 
 
 
 
}
 
最終更新:2016年04月15日 15:42