package line2;
public class pro {
int a[]=new int[5000];
int b[]=new int[5000];
double d[]=new double[5000];
int number;
int number_line;
int s;
int mid,last,fast;
public static void main(String[] args) {
pro test=new pro();
}
pro(){
number=100;
for(s=1;s<number;s++){
a[s]=s;
b[s]=s+1;
d[s]=1;
}
number_line=number-1;
int tr;
for(tr=1;tr<11;tr++){
for(fast=1;fast<number+1;fast++){
search(fast);
int ch=check();
if(ch>50){
double d1=dis(fast,mid)+dis(mid,last);
double d2=dis(fast,last);
int sp=delta();
if(d2>d1)d[sp]=d1;
}
if(fast==last)ch=100;
if(ch<50){
number_line=number_line+1;
a[number_line]=fast;
b[number_line]=last;
d[number_line]=dis(fast,mid)+dis(mid,last);
}
System.out.println(number_line+","+fast+","+last);
}}
}
int check(){
int s,h;
int ch;
ch=0;
for(s=1;s<number_line+1;s++){
h=0;
if(a[s]==fast)h=h+1;
if(b[s]==last)h=h+1;
if(h==2)ch=100;
h=0;
if(a[s]==last)h=h+1;
if(b[s]==fast)h=h+1;
if(h==2)ch=100;
}
return ch;
}
int delta(){
int s,h;
int ch,delta;
delta=0;
for(s=1;s<number_line+1;s++){
h=0;
if(a[s]==fast)h=h+1;
if(b[s]==last)h=h+1;
if(h==2)delta=s;
h=0;
if(a[s]==last)h=h+1;
if(b[s]==fast)h=h+1;
if(h==2)delta=s;
}
return delta;
}
void search(int fast){
int sx;
int[] p=new int[100];
int[] q=new int[100];
sx=0;
for(s=1;s<number_line+1;s++){
if(a[s]==fast)sx=sx+1;
if(a[s]==fast)p[sx]=b[s];
if(b[s]==fast)sx=sx+1;
if(b[s]==fast)p[sx]=a[s];
}
int numberx=sx;
int r1=(int)(numberx*Math.random())+1;
int s1=p[r1];
sx=0;
for(s=1;s<number_line+1;s++){
if(a[s]==s1)sx=sx+1;
if(a[s]==s1)q[sx]=b[s];
if(b[s]==s1)sx=sx+1;
if(b[s]==s1)q[sx]=a[s];
}
int numbery=sx;
int r2=(int)(numbery*Math.random())+1;
int s2=q[r2];
mid=s1;
last=s2;
}
double dis(int a1,int b1){
double dd=999;
int h;
for(s=1;s<number_line+1;s++){
h=0;
if(a[s]==a1)h=h+1;
if(b[s]==b1)h=h+1;
if(h==2)dd=d[s];
h=0;
if(a[s]==b1)h=h+1;
if(b[s]==a1)h=h+1;
if(h==2)dd=d[s];
}
return dd;
}
}
最終更新:2015年04月21日 23:25