アットウィキロゴ

keibaz

package uma;
 
import tool.*;
 
public class pro {
 
 
    int s,datanumber;
    String[] data=new String[50000];
   String[] race=new String[50000];
    String[] name=new String[50000];
    int[] point=new int[50000];
    String[] dic=new String[7000];
    String[] code=new String[7000];
 
    int[][] v=new int[7000][7000];
 
 
   int power[]=new int[7000];
   int p[]=new int[7000];
 
    public static void main(String[] args) {
        pro r=new pro();
    }
 
    pro(){
 
 
        readfile sub=new readfile();
        sub.makedata("uma.csv","UTF-8");
        data=sub.data;
        datanumber=sub.datanumber;
 
        for(s=2;s<datanumber+1;s++){
        String[] x=data[s].split(",");
        race[s]=x[0];
        name[s]=x[5];    
        point[s]=numx(x[1]);  
        if(point[s]==0)point[s]=9999;
        }
 
        System.out.println(point[10]);
 
        int sx,h;
                int dicnumber=0;
 
        for(s=2;s<datanumber+1;s++){
        h=0;
        for(sx=1;sx<dicnumber+1;sx++){
        if(name[s].equals(dic[sx]))h=100;    
        } 
        if(h<50)dicnumber=dicnumber+1;  
        if(h<50)dic[dicnumber]=name[s];  
        }
 
        System.out.println(dicnumber);
 
        int number=0;
 
        for(s=2;s<datanumber+1;s++){
        h=0;
        for(sx=1;sx<number+1;sx++){
        if(race[s].equals(code[sx]))h=100;    
        } 
        if(h<50)number=number+1;  
        if(h<50)code[number]=race[s];  
        }
 
 
        System.out.println(number); 
 
        String[] play=new String[100];
        int[] count=new int[100];
        int[] hoa=new int[100];
 
        for(s=1;s<number+1;s++){
        int tx=0;    
        for(sx=2;sx<datanumber+1;sx++){
        if(race[sx].equals(code[s]))tx=tx+1;    
        if(race[sx].equals(code[s]))play[tx]=name[sx];   
        if(race[sx].equals(code[s]))count[tx]=point[sx]; 
        } 
        int delta=tx;    
        for(sx=1;sx<delta+1;sx++){
        for(tx=1;tx<dicnumber+1;tx++){
        if(play[sx].equals(dic[tx]))hoa[sx]=tx;    
        }
        }
 
        for(sx=1;sx<delta+1;sx++){
        for(tx=1;tx<delta+1;tx++){
        int s1=hoa[sx];
        int s2=hoa[tx];
        if(count[sx]<count[tx])v[s1][s2]=v[s1][s2]+1;
        }
        }
 
 
        }
 
 
   for(s=1;s<dicnumber+1;s++){
   power[s]=50;    
   }     
 
 
   int trs;
   for(trs=1;trs<11;trs++){
 
  for(s=1;s<dicnumber+1;s++){
  double[] rate=new double[1000];
  int[] tai=new int[1000];
  int tx;
  sx=0;
  for(tx=1;tx<dicnumber+1;tx++){
  int c1=v[s][tx];    
  int c2=v[tx][s];
  h=0;
  if(c1>0)h=100;
  if(c2>0)h=100;
  if(h>50)sx=sx+1;
  if(h>50)rate[sx]=(double)c1/(c1+c2);
  if(h>50)tai[sx]=tx;
  }
  int number_t=sx; 
 
  int n;
  int nx=1;
  double minp=9999999;
  for(n=1;n<101;n++){
  double e=0;    
  for(sx=1;sx<number_t+1;sx++){
  int s1=tai[sx];
  double p1=(double)n/(n+power[s1]);    
  e=e+(p1-rate[sx])*(p1-rate[sx]);
  }    
  if(e<minp)nx=n;
  if(e<minp)minp=e;
  }
  p[s]=nx;
 
  }
 
  for(s=1;s<dicnumber+1;s++){
  power[s]=p[s];    
  }    
 
  System.out.println(trs);
 
   }     
 
 
  for(s=1;s<dicnumber+1;s++){
 if(power[s]<10) System.out.println(dic[s]+","+power[s]);    
  }      
 
 
 
    }
    int numx(String str){
 
    int nx;
 
    nx=0;
 
 try{
 
    nx=Integer.parseInt(str);
 
 }catch (Exception e) {}
 
 return nx;
 
 
 
}
 
 
}
 
最終更新:2016年05月12日 16:32