package tr;
public class pro {
int[][] x=new int[101][3];
int s,sx;
int[] card=new int[3];
public static void main(String[] args) {
pro test=new pro();
}
pro(){
for(s=1;s<50;s++){
x[s][1]=1;
x[s][2]=1;
}
for(s=50;s<80;s++){
x[s][1]=1;
x[s][2]=2;
}
for(s=80;s<90;s++){
x[s][1]=2;
x[s][2]=1;
}
for(s=90;s<101;s++){
x[s][1]=2;
x[s][2]=2;
}
int tr;
for(tr=1;tr<1001;tr++){
makecard();
s=select();
x[s][1]=card[1];
x[s][2]=card[2];
}
}
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=card[1];
if(s==c)s2=card[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]-0.25)*(q[s][sx]-0.25);
}
}
return e;
}
void makecard(){
double p1;
p1=Math.random();
card[1]=1;
if(p1>0.5)card[1]=2;
p1=Math.random();
card[2]=1;
if(p1>0.5)card[2]=2;
}
}
最終更新:2014年03月18日 22:35