アットウィキロゴ

XXCX

import java.io.*;

public class clu{

int s,sx,sxs,datanumber,articlenumber;
String[] data=new String[50000];
String[] ske=new String[101];  
int[] ns=new int[101];
String[] dic=new String[50000];  
int[][] num=new int[1000][30000];  
double[][] rate=new double[901][101];
int[] gr=new int[901];
int xlong,h,dicnumber;
String file;
double z1;
int n,t,tx,ts,txs;
double m1,minx;

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

clu(){        

readfile("lib.txt");

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

readfile("100.txt");

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

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

readfile("data.txt");

articlenumber=datanumber;

for(s=1;s<datanumber+1;s++){
String[] x=data[s].split(",");
xlong=x.length;
for(sx=1;sx<xlong+1;sx++){
num[s][sx]=Integer.parseInt(x[sx-1]);
}
}


for(t=1;t<901;t++){
z1=0;
for(s=1;s<101;s++){
sx=ns[s];
z1=z1+num[t][sx];
}
for(s=1;s<101;s++){
if(z1>0)rate[t][s]=(double)num[t][s]/z1;
}
}

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



for(n=1;n<100;n++){
t=0;
tx=0;
minx=9999;
for(s=1;s<901;s++){
for(sx=1;sx<901;sx++){
m1=met(s,sx);
h=0;
if(m1<minx)h=100;
if(gr[s]==gr[sx])h=0;
if(h>50)minx=m1;
if(h>50)t=s;
if(h>50)tx=sx;
}
}


System.out.println(t);
System.out.println(tx);
System.out.println(minx);
ts=gr[t];
txs=gr[tx];
for(s=1;s<901;s++){
if(gr[s]==txs)gr[s]=ts;
}



}


}

double met(int t1,int t2){
double m1,m2;
int t,h;
m2=0;
for(t=1;t<101;t++){
m1=rate[t1][t]-rate[t2][t];
m2=m2+m1*m1;
}

h=0;
for(t=1;t<101;t++){
if(rate[t1][t]==0)h=h+1;
}
if(h==100)m2=9999;
h=0;
for(t=1;t<101;t++){
if(rate[t2][t]==0)h=h+1;
}
if(h==100)m2=9999;

return m2;
}

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;

}

void writefile(){

try{
PrintWriter pw = new PrintWriter
(new BufferedWriter(new FileWriter("data.txt")));


for(s=1;s<901;s++){
for(sx=1;sx<dicnumber;sx++){                                              
pw.print(num[s][sx]);                              
pw.print(",");                              
}
sx=dicnumber;
pw.println(num[s][sx]);                              
}

System.out.println("ファイルに書きこみました。");
pw.close();
}
catch(IOException ep){ System.out.println("入出力エラーです。"); }

}







}
最終更新:2011年06月19日 11:13