package lion;
import tool.*;
public class pro {
int s,datanumber,sx;
String[] data=new String[500];
String str;
int[] number=new int[500];
String[] name=new String[500];
String[] date=new String[500];
int[] length=new int[500];
int[] weight=new int[500];
String[] bat=new String[500];
String[] pitch=new String[500];
int[] birth=new int[500];
int[] age=new int[500];
int[] count_a=new int[5];
int[] count_p=new int[5];
int[] count_w=new int[5];
int[] count_l=new int[5];
double[] rate_w=new double[3];
double[] rate_l=new double[3];
double[][] p=new double[3][3];
int[][] x=new int[101][3];
int[] y=new int[3];
int c;
double[][] ps=new double[3][3];
public static void main(String[] args) {
pro test=new pro();
}
pro(){
faststep();
int t;
for(t=1;t<1000;t++){
trial();
c=select();
x[c][1]=y[1];
x[c][2]=y[2];
}
check();
for(s=1;s<3;s++){
System.out.println(ps[s][1]+","+ps[s][2]);
}
for(s=1;s<3;s++){
System.out.println(p[s][1]+","+p[s][2]);
}
}
void check(){
int s1,s2;
int[][] count=new int[3][3];
for(s=1;s<101;s++){
s1=x[s][1];
s2=x[s][2];
if(s==c)s1=y[1];
if(s==c)s2=y[2];
count[s1][s2]=count[s1][s2]+1;
}
for(s=1;s<3;s++){
for(sx=1;sx<3;sx++){
ps[s][sx]=(double)count[s][sx]/100;
}
}
}
int select(){
int c,cx;
double minv,v1;
minv=9999;
cx=0;
for(c=1;c<101;c++){
v1=replacev(c);
if(v1<minv)cx=c;
if(v1<minv)minv=v1;
}
return cx;
}
double replacev(int c){
int s,sx;
int[][] count=new int[3][3];
double[][] q=new double[3][3];
for(s=1;s<3;s++){
for(sx=1;sx<3;sx++){
count[s][sx]=0;
}
}
int s1,s2;
for(s=1;s<101;s++){
s1=x[s][1];
s2=x[s][2];
if(s==c)s1=y[1];
if(s==c)s2=y[2];
count[s1][s2]=count[s1][s2]+1;
}
for(s=1;s<3;s++){
for(sx=1;sx<3;sx++){
q[s][sx]=(double)count[s][sx]/100;
}
}
double e;
e=0;
for(s=1;s<3;s++){
for(sx=1;sx<3;sx++){
e=e+(q[s][sx]-p[s][sx])*(q[s][sx]-p[s][sx]);
}
}
return e;
}
void trial(){
int s1,s2;
double p1;
s1=1;
p1=Math.random();
if(p1>rate_l[1])s1=2;
s2=1;
p1=Math.random();
if(p1>rate_w[1])s2=2;
y[1]=s1;
y[2]=s2;
}
void faststep(){
readfile sub=new readfile();
sub.makedata("seibu.txt","SJIS");
data=sub.data;
datanumber=sub.datanumber;
for(s=1;s<datanumber+1;s++){
str=data[s];
str=str.replace(" ","△");
String[] x=str.split("△");
number[s]=Integer.parseInt(x[0]);
name[s]=x[1].replace(" ","");
date[s]=x[2];
length[s]=Integer.parseInt(x[3]);
weight[s]=Integer.parseInt(x[4]);
bat[s]=x[5];
pitch[s]=x[6];
}
for(s=1;s<datanumber+1;s++){
str=date[s];
str=str.replace(".",",");
String[] x3=str.split(",");
birth[s]=Integer.parseInt(x3[0]);
}
for(s=1;s<datanumber+1;s++){
age[s]=2013-birth[s];
}
int a1;
for(s=1;s<datanumber+1;s++){
a1=1;
if(age[s]>24)a1=2;
if(age[s]>29)a1=3;
count_a[a1]=count_a[a1]+1;
}
for(s=1;s<datanumber+1;s++){
a1=1;
if(pitch[s].indexOf("右")>-1)a1=2;
count_p[a1]=count_p[a1]+1;
}
for(s=1;s<datanumber+1;s++){
a1=1;
if(weight[s]>79)a1=2;
count_w[a1]=count_w[a1]+1;
}
for(s=1;s<datanumber+1;s++){
a1=1;
if(length[s]>179)a1=2;
count_l[a1]=count_l[a1]+1;
}
for(s=1;s<3;s++){
rate_l[s]=(double)count_l[s]/datanumber;
}
for(s=1;s<3;s++){
rate_w[s]=(double)count_w[s]/datanumber;
}
int a2;
for(s=1;s<datanumber+1;s++){
a1=1;
if(weight[s]>79)a1=2;
a2=1;
if(length[s]>179)a2=2;
p[a1][a2]=p[a1][a2]+1;
}
for(s=1;s<3;s++){
for(sx=1;sx<3;sx++){
p[s][sx]=p[s][sx]/datanumber;
}
}
double p1;
int s1,s2;
for(s=1;s<101;s++){
s1=1;
p1=Math.random();
if(p1>rate_l[1])s1=2;
s2=1;
p1=Math.random();
if(p1>rate_w[1])s2=2;
x[s][1]=s1;
x[s][2]=s2;
}
}
}
最終更新:2014年03月19日 02:53