アットウィキロゴ

package bar;
 
public class pro {
 
    int th;
   int[] c=new int[101];
   int[] y=new int[101];
 
   int[] delta_c=new int[101];
   int[] delta_y=new int[101];
   int s;
 
    public static void main(String[] args) {
        pro test=new pro();
    }
 
 
    pro(){
 
        th=50;
 
        for(s=1;s<101;s++){
        c[s]=10;
        y[s]=10;
        delta_c[s]=1;
        delta_y[s]=1;
        }
 
        int tr;
 
        for(tr=1;tr<1000;tr++){
 
        for(s=1;s<101;s++){
        c[s]=c[s]+delta_c[s];
        y[s]=y[s]+delta_y[s];
        }
 
   for(s=1;s<101;s++){
    check(s);
   } 
         for(s=1;s<101;s++){
      trial(s);
        }
 
 
 
        }
 
        int c1,y1;
        c1=0;
        y1=0;
       for(s=1;s<101;s++){ 
        c1=c1+c[s];
      y1=y1+y[s];
       }
 
       System.out.println(c1/100+","+y1/100);   
 
 
 
 
    }
 
 
    void trial(int s){
 
        int b1;
        b1=bud();
 
 
        double p1;
        p1=Math.random();
        if(p1<0.05){
if(b1>0)shuffle_p(s);
if(b1<0)shuffle_m(s);  
        }
 
    }
void check(int s){
 
    int z;
    z=0;
    if(c[s]<1)z=100;
     if(y[s]<0)z=100;
     if(y[s]>th-1)z=100;
if(c[s]<1)c[s]=1;
if(y[s]<0)y[s]=0;
if(y[s]>th-1)y[s]=th-1;
 
int b1;
 
if(z>50){
 
b1=bud();
if(b1>-1)shuffle_p(s);
if(b1<0)shuffle_m(s);
}
}
 
 
int bud(){
int b1,s;
b1=0;
for(s=1;s<101;s++){    
b1=b1+y[s]-c[s];    
}    
return b1;
}
 
void shuffle_p(int s){
double u1,u2;
u1=u(c[s]+1,y[s]);
u2=u(c[s],y[s]-1);
 
delta_c[s]=0;
delta_y[s]=0;
 
int z;
z=0;
if(u1>u2)z=100;
if(z>50)delta_c[s]=1;
if(z<50)delta_y[s]=-1;
 
 
}
void shuffle_m(int s){
double u1,u2;
u1=u(c[s]-1,y[s]);
u2=u(c[s],y[s]+1);
 
delta_c[s]=0;
delta_y[s]=0;
int z;
z=0;
if(u1>u2)z=100;
if(z>50)delta_c[s]=-1;
if(z<50)delta_y[s]=1;
 
 
}
 
double u(int c1,int y1){
double delta=0.01;
double u1=Math.log(c1*delta)+Math.log(1-(double)y1/th);
return u1;
}
}
最終更新:2014年04月09日 10:33