アットウィキロゴ

tetuxl

package line4;
 
public class pro {
 
    int line_a[]=new int[5000];
    int line_b[]=new int[5000];
    double line_dis[]=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++){
        line_a[s]=s;
        line_b[s]=s+1;
        line_dis[s]=1;
        }
        number_line=number-1;
 
        int fast,sec,thr;
 
        int tr;
        for(tr=1;tr<1001;tr++){
 
        fast=rndx();
 
        sec=choice(fast);
 
        thr=choice(sec);
 
        System.out.println(fast+","+sec+","+thr);
 
        check(fast,sec,thr);
 
        System.out.println(number_line);
        }
 
 
    }
 
    int rndx(){
 
         double m1=number*Math.random();
        int m2=(int)Math.floor(m1)+1;
        return m2;
    }
 
    void check(int fast,int sec,int thr){
 
        int ch;
        ch=0;
    if(fast==thr)ch=100;
    if(check_a(fast,sec,thr)>50)ch=200;
 
 
    if(ch==0)v_a(fast,sec,thr);
    if(ch==200)v_b(fast,sec,thr);
 
 
    }
      void v_a(int fast,int sec,int thr){
 
 
          number_line=number_line+1;
 
          line_a[number_line]=fast;
          line_b[number_line]=thr;
 
 
 
 
          int s1,s2;
 
          s1=search(fast,sec);
          s2=search(thr,sec);
 
          line_dis[number_line]=line_dis[s1]+line_dis[s2];
 
 
 
    }
     void v_b(int fast,int sec,int thr){
 
 
 
 
          int s1,s2,s3;
 
          s1=search(fast,sec);
          s2=search(thr,sec);
 
         double d1=line_dis[s1]+line_dis[s2];
 
          s3=search(thr,fast);
 
          double d2=line_dis[s3];
 
          if(d1<d2)line_dis[s3]=d1;
 
    }
 
    int search(int s1,int s2){
        int ss,h;
 
          ss=0;
       for(s=1;s<number_line+1;s++){
        h=0;
        if(line_a[s]==s1)h=h+1;    
        if(line_b[s]==s2)h=h+1; 
       if(h==2)ss=s; 
       }
 
 
    for(s=1;s<number_line+1;s++){
        h=0;
        if(line_b[s]==s1)h=h+1;    
        if(line_a[s]==s2)h=h+1; 
       if(h==2)ss=s; 
       }
 
 
       return ss; 
 
    }
 
 
    int check_a(int fast,int sec,int thr){
 
        int h,ch;
        ch=0;
       for(s=1;s<number_line+1;s++){
        h=0;
        if(line_a[s]==fast)h=h+1;    
        if(line_b[s]==thr)h=h+1; 
       if(h==2)ch=100; 
       }
 
 
    for(s=1;s<number_line+1;s++){
        h=0;
        if(line_b[s]==fast)h=h+1;    
        if(line_a[s]==thr)h=h+1; 
       if(h==2)ch=100; 
       }
 
 
       return ch; 
    }
 
 
    int choice(int delta){
 
        int s,sx;
        int[] ch=new int[500];
        int number_ch;
        sx=0;
        for(s=1;s<number_line+1;s++){
        if(line_a[s]==delta)sx=sx+1;    
        if(line_a[s]==delta)ch[sx]=line_b[s]; 
        }
 
 
        for(s=1;s<number_line+1;s++){
        if(line_b[s]==delta)sx=sx+1;    
        if(line_b[s]==delta)ch[sx]=line_a[s]; 
        }
 
        number_ch=sx;
 
 
 
       double m1=number_ch*Math.random();
        int m2=(int)Math.floor(m1)+1;
        int m3=ch[m2];
 
        return m3;
 
    }
 
 
 
 
}
最終更新:2015年04月28日 06:08