package atom;
public class pro {
int number;
int[] x=new int[11];
int[] y=new int[11];
int[] dx=new int[11];
int[] dy=new int[11];
int s,sx;
double[] p=new double[4];
public static void main(String[] args) {
pro test=new pro();
}
pro(){
p[1]=0.8;
p[2]=0.2;
p[3]=0.8;
for(s=1;s<11;s++){
x[s]=50;
y[s]=50;
dx[s]=0;
dy[s]=0;
}
int t;
for(t=1;t<1000;t++){
for(s=1;s<11;s++){
x[s]=x[s]+dx[s];
y[s]=y[s]+dy[s];
}
double minm,m1;
int ch;
for(s=1;s<11;s++){
minm=9999;
for(sx=1;sx<11;sx++){
m1=met(s,sx);
if(s==sx)m1=9999;
if(m1<minm)minm=m1;
}
ch=2;
if(minm>9)ch=3;
if(minm<2)ch=1;
check(s,ch);
}
for(s=1;s<11;s++){
bar(s);
}
}
}
void bar(int s){
if(x[s]>100)change(s);
if(x[s]>100)x[s]=100;
if(y[s]>100)change(s);
if(y[s]>100)y[s]=100;
if(x[s]<1)change(s);
if(x[s]<1)x[s]=1;
if(y[s]<1)change(s);
if(y[s]<1)y[s]=1;
}
void check(int s,int ch){
double p1;
p1=Math.random();
if(p1<p[ch])change(s);
}
void change(int s){
double p1;
p1=Math.random();
dx[s]=-1;
if(p1<0.5)dx[s]=1;
p1=Math.random();
dy[s]=-1;
if(p1<0.5)dy[s]=1;
}
int met(int s1,int s2){
int x1,y1,z1;
double z;
x1=x[s1]-x[s2];
y1=y[s1]-y[s2];
z=x1*x1+y1*y1;
z=Math.sqrt(z);
z1=(int)z;
return z1;
}
}
最終更新:2014年04月11日 06:20