アットウィキロゴ

v2v4pp

package j4;
 
 
import tool.*;
 
public class pro {
 
 
    int s,datanumber;
    String[] data=new String[500];
    String[] x1=new String[500];
     String[] x2=new String[500];
    String[] y=new String[500];
    int[] pointx=new int[5000];
    int[] pointy=new int[5000];
    int[][] v=new int[50][50];
 
   int power[]=new int[20];
   int p[]=new int[20];
 
   int dicnumber;
 
    public static void main(String[] args) {
        pro t=new pro();
    }
 
    pro(){
 
          readfile sub2=new readfile();
        sub2.makedata("2009.csv","SJIS");
        data=sub2.data;
        datanumber=sub2.datanumber;
 
 
        for(s=1;s<datanumber+1;s++){
 
        String[] x=data[s].split(",");
        x1[s]=x[5];
        x2[s]=x[7];
        y[s]=x[6];
 
        }
 
 
        int sx;
        dicnumber=0;
       String[] dic=new String[500]; 
 
 
       for(s=1;s<datanumber+1;s++){
        int h=0;
       for(sx=1;sx<dicnumber+1;sx++){
       if(x1[s].equals(dic[sx]))h=100;
       }
       if(h<50)dicnumber=dicnumber+1;
       if(h<50)dic[dicnumber]=x1[s];
       } 
 
 
 
        for(s=1;s<datanumber+1;s++){
        String[] y1=y[s].split("-");
        pointx[s]=Integer.parseInt(y1[0]);
        pointy[s]=Integer.parseInt(y1[1]);
        }
 
 
        for(s=1;s<datanumber+1;s++){
        int s1=0;   
        for(sx=1;sx<dicnumber+1;sx++){
        if(x1[s].equals(dic[sx]))s1=sx;    
        }
         int s2=0;   
        for(sx=1;sx<dicnumber+1;sx++){
        if(x2[s].equals(dic[sx]))s2=sx;    
        }
        v[s1][s2]=v[s1][s2]+pointx[s];
        v[s2][s1]=v[s2][s1]+pointy[s];
        }
 
 
        for(s=1;s<dicnumber+1;s++){
         power[s]=50;   
        }
 
        int del;
 
        for(del=1;del<11;del++){
           int k,tr;
        for(tr=1;tr<dicnumber+1;tr++){
 
        for(s=1;s<dicnumber+1;s++){
        p[s]=power[s];   
        }    
 
        double minx=999999;
        int ks;
        ks=0;
        for(k=1;k<101;k++){
        p[tr]=k;
        double g1=g();
        if(g1<minx)ks=k;
        if(g1<minx)minx=g1;
        }
        power[tr]=ks;
 
        }
 
        }
 
        for(s=1;s<dicnumber+1;s++){
        System.out.println(dic[s]+","+power[s]);
        }
 
 
 
 
    }
 
 
 
      double  g(){
 
        int s,sx;
        double g1=0; 
 
        for(s=1;s<dicnumber+1;s++){
        for(sx=s+1;sx<dicnumber+1;sx++){
        g1=g1+f(s,sx);
        }
        }
 
    return g1;
    }
 
 
double f(int s1,int s2){
 
 
    double z1=p[s1]+p[s2];
    double z2=100*p[s1];
    double z3=z2/z1;
 
    double x1=v[s1][s2]+v[s2][s1];
    double x2=100*v[s1][s2];
    if(x1==0)x1=1;
    double x3=x2/x1;
 
    double f1=(z3-x3)*(z3-x3);
 
    return f1;
 
 
 
}
 
 
 
 
}
 
最終更新:2016年03月30日 02:32