アットウィキロゴ

しょk

package syo;
 
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[102];
    int[] q2=new int[102];
    int[] point=new int[6000];
     int[] point2=new int[6000];
    int number;
    int xx,yy;
     int[] pon=new int[6000];
 
    public static void main(String[] args) {
       pro te=new pro();
    }
    pro(){
 
        catchdata sub4=new catchdata();
        sub4.makedata();
        pon=sub4.pon;
 
          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]);  
 
        }
 int z1=0;
 int sx,tx;
 tx=0;
        for(s=1;s<datanumber;s++){
      z1=z1+y1[s];      
        for(sx=1;sx<y1[s]+1;sx++){
        tx=tx+1;    
        point[tx]=s;
        }
        }
        number=tx;
 
         tx=0;
        for(s=1;s<datanumber;s++){      
        for(sx=1;sx<y2[s]+1;sx++){
        tx=tx+1;    
        point2[tx]=s;
        }
        }
        number=tx;
        System.out.println(number);
 
        for(s=1;s<101;s++){
        step();    
        q1[s]=xx;
     q2[s]=yy;
        }
 
        int tr;
 
        for(tr=1;tr<5000;tr++){
 
        fast sub=new fast();
        sub.y1=y1;
        sub.q1=q1;
        sub.pon=pon;
        sub.y2=y2;
        sub.q2=q2;
        sub.point=point;
       sub.point2=point2;
        sub.number=number;
        sub.makedata();
        q1=sub.q1;
        q2=sub.q2;
 
 
        }
 
        int c1,c2;
 
        for(s=1;s<22;s++){
        c1=0;
        c2=0;
        for(sx=1;sx<101;sx++){
        if(q1[sx]==s)c1=c1+1;
        if(q1[sx]==s)c2=c2+q2[sx];    
        }    
        System.out.println(s+","+pon[s]+","+c2/c1);
        }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    }
 
 
      void step(){
 
        double n=number*Math.random(); 
        int n2=(int)n+1;
        xx=point[n2];
 
 
        n=number*Math.random(); 
        n2=(int)n+1;
        yy=point2[n2];
 
    }
 
 
 
 
 
}
 
 
 
package syo;
 
 
 
public class fast{
 
    int s,datanumber;
    String[] data=new String[500];
    int[] y1=new int[100];
    int[] y2=new int[100];
  int[] pon=new int[100];
    int[] q1=new int[10000];
    int[] q2=new int[10000];
 
    int[] p1=new int[10000];
    int[] p2=new int[10000];
 
    int[] point=new int[10000];
     int[] point2=new int[10000];
    double[] v1=new double[1000];
     double[] v2=new double[1000];
      double[] v3=new double[1000];
   int number; 
 
  int[] rank=new int[1000];
  int[] rank2=new int[1000];
  int[] rank3=new int[1000];
  int[] delta=new int[1000];
 
    int xx,yy;
 
 
    void makedata(){
 
 
 
 
 
        step();
 
 
        int sx,sxs;
        sxs=0;
        for(sx=1;sx<101;sx++){
        rep(sx);
        v1[sx]=cal();
        v2[sx]=cal2();
         v3[sx]=cal3();
        } 
 
 
       ranking();
 
       ranking2();
 
       ranking3();
 
       for(s=1;s<101;s++){
       delta[s]=rank[s]+rank2[s]+rank3[s];    
       }
 
       int minx=100;
       sx=0;
       for(s=1;s<101;s++){
           if(delta[s]<minx)sx=s;  
           if(delta[s]<minx)minx=delta[s];    
       }
 
       q1[sx]=xx;
       q2[sx]=yy;
 
 
 
 
 
 
 
 
 
 
 
    }
 
 
 
    void ranking(){ 
int r,s,sx,h; 
int[] ch=new int[2001];
double maxu;
int t;
 for(s=1;s<101;s++){ 
 ch[s]=0;    
 }
 
 
for(r=1;r<101;r++){ 
int sxs=0; 
double minu=9999; 
for(s=1;s<101;s++){ 
h=0; 
if(v1[s]<minu)h=h+1; 
if(ch[s]<50)h=h+1; 
if(h==2)minu=v1[s]; 
if(h==2)sxs=s; 
}
rank[sxs]=r; 
ch[sxs]=100; 
}
 
 
}
 
 
    void ranking2(){ 
int r,s,sx,h; 
int[] ch=new int[2001];
double maxu;
int t;
 for(s=1;s<101;s++){ 
 ch[s]=0;    
 }
 
 
for(r=1;r<101;r++){ 
int sxs=0; 
double minu=9999; 
for(s=1;s<101;s++){ 
h=0; 
if(v2[s]<minu)h=h+1; 
if(ch[s]<50)h=h+1; 
if(h==2)minu=v2[s]; 
if(h==2)sxs=s; 
}
rank2[sxs]=r; 
ch[sxs]=100; 
}
 
 
}
 
 void ranking3(){ 
int r,s,sx,h; 
int[] ch=new int[2001];
double maxu;
int t;
 for(s=1;s<101;s++){ 
 ch[s]=0;    
 }
 
 
for(r=1;r<101;r++){ 
int sxs=0; 
double minu=9999; 
for(s=1;s<101;s++){ 
h=0; 
if(v3[s]<minu)h=h+1; 
if(ch[s]<50)h=h+1; 
if(h==2)minu=v3[s]; 
if(h==2)sxs=s; 
}
rank3[sxs]=r; 
ch[sxs]=100; 
}
 
 
}    
 
 
    void rep(int r2){
 
    for(s=1;s<101;s++){
    p1[s]=q1[s];    
    p2[s]=q2[s];
    }    
    p1[r2]=xx;
    p2[r2]=yy;
 
    }
 
 
 
 
 
 
   double cal(){
 
       int s,z;
 
       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]-number*z2[s]/100)*(y1[s]-number*z2[s]/100);    
       }
 
       z1=Math.sqrt(z1);
 
 
 
 
 
       return z1;
   } 
 
 
 
    double cal2(){
 
       int s,z;
 
       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]-number*z2[s]/100)*(y2[s]-number*z2[s]/100);    
       }
 
       z1=Math.sqrt(z1);
 
 
 
 
 
       return z1;
   } 
 
 
 
  void step(){
 
        double n=number*Math.random(); 
        int n2=(int)n+1;
        xx=point[n2];
 
 
        n=number*Math.random(); 
        n2=(int)n+1;
        yy=point2[n2];
 
    }
 
 
    double cal3(){
 
       int s,z;
 
       int s1;
       int s2;
       double z1=0;
       for(s=1;s<101;s++){
 
       s1=p1[s];
       s2=pon[s1];
       z1=z1+(p2[s]-s2)*(p2[s]-s2);    
       }
 
       z1=Math.sqrt(z1);
 
 
 
 
 
       return z1;
   } 
 
 
 
 
 
}
 
 
package syo;
 
import tool.readfile;
 
 
public class catchdata {
 
     int s,datanumber;
    String[] data=new String[500];
    int[] pon=new int[500];
 
 
    void makedata(){
 
 
        readfile sub2=new readfile();
        sub2.makedata("800.txt","UTF-8");
        data=sub2.data;
        datanumber=sub2.datanumber;
 
 
        for(s=1;s<datanumber+1;s++){
       double n=Double.parseDouble(data[s]);
      int n1=(int)n/50+1;
      pon[s]=n1;
        }
 
 
    }
 
}
 
最終更新:2016年04月16日 11:27