アットウィキロゴ

だたWS

import java.io.*;

public class pro{

int s,sx,sxs,datanumber;
String[] data=new String[50000];
String[] dic=new String[50000];
String[] ske=new String[101];
String[] author=new String[1000];
String[] credit=new String[33];
int[] ndic=new int[101];
int[] ncredit=new int[33];
int dicnumber,authornumber;
int[][] num=new int[40][200];
double[][] rate=new double[40][200];
int s1,s2,sx1,sx2;
int t,z1;
int[] gr=new int[51];
int[][] route=new int[51][51];
double minmx,mx;


public static void main(String[] args){
pro test=new pro();
}

pro(){        

readfile("lib.txt");

dicnumber=datanumber;

for(s=1;s<dicnumber+1;s++){
dic[s]=data[s];
}


readfile("100.txt");  

for(s=1;s<101;s++){
ske[s]=data[s];
}


for(s=1;s<101;s++){
sxs=0;
for(sx=1;sx<dicnumber+1;sx++){
if(ske[s].equals(dic[sx]))sxs=sx;
}
ndic[s]=sxs;
}

readfile("author.txt");

authornumber=datanumber;

for(s=1;s<authornumber+1;s++){
author[s]=data[s];
}

readfile("33.txt");

for(s=1;s<33;s++){
credit[s]=data[s];
}


for(s=1;s<33;s++){
sxs=0;
for(sx=1;sx<authornumber+1;sx++){
if(credit[s].equals(author[sx]))sxs=sx;
}
ncredit[s]=sxs;
}

readfile("data.txt");

for(s=1;s<33;s++){
s1=ncredit[s];
String[] x=data[s1].split(",");
for(sx=1;sx<101;sx++){
s2=ndic[sx]-1;
num[s][sx]=Integer.parseInt(x[s2]);
}
}

for(s=1;s<33;s++){
z1=0;
for(sx=1;sx<101;sx++){
z1=z1+num[s][sx];
}
for(sx=1;sx<101;sx++){
rate[s][sx]=(double)num[s][sx]/z1;
}

}

for(s=1;s<33;s++){
gr[s]=s;
}

for(t=15;t<25;t++){

sx1=0;
sx2=0;
minmx=9999;
for(s1=1;s1<33;s1++){
for(s2=1;s2<33;s2++){
mx=met(s1,s2);
if(s1==s2)mx=9999;
if(mx<minmx)sx1=s1;
if(mx<minmx)sx2=s2;
if(mx<minmx)minmx=mx;
}
}

for(s=1;s<33;s++){
if(gr[s]==sx2)gr[s]=sx1;
}

System.out.println(77);
for(s=1;s<33;s++){
System.out.print(credit[s]);
System.out.print(",");
System.out.println(gr[s]);
}

}

}

double met(int s1,int s2){
int t,tx,h,c;
double minx,mx,mm,c1;
minx=9999;
for(t=1;t<33;t++){
for(tx=1;tx<33;tx++){
c1=0;
for(c=1;c<101;c++){
c1=c1+(rate[t][c]-rate[tx][c])*(rate[t][c]-rate[tx][c]);
}
mx=9999;
h=0;
if(gr[t]==s1)h=h+1;
if(gr[tx]==s2)h=h+1;
if(h==2)mx=c1;
if(mx<minx)minx=mx;
}
}
return minx;
}





void readfile(String file){

String str;
BufferedReader br;
int s;
s=0;

try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"SJIS"));  
while((str = br.readLine()) != null) {  
s=s+1;
data[s]=str;  
}
br.close();
} catch (IOException e) {System.out.println(e);}
datanumber=s;

}








}
最終更新:2011年06月23日 16:11