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