アットウィキロゴ

状態

package ren;
 
import tool.*;
 
public class pro {
 
    String[] data=new String[5000];
    int s,datanumber,sx;
     double[] point=new double[5000];
      double[][] v=new double[500][200];
        int[][] gotos=new int[500][200];
     double minp,maxp;
  double delta;
     int[] route=new int[500];
 
    public static void main(String[] args) {
       pro test=new pro();
    }
 
    pro(){
 
        readfile sub=new readfile();
        sub.makedata("data.txt","UTF-8");
        data=sub.data;
        datanumber=sub.datanumber;
 
        for(s=1;s<datanumber+1;s++){
        point[s]=Double.parseDouble(data[s]);
        }
 
        minp=999;
        maxp=0;
 
 
        for(s=1;s<datanumber+1;s++){
        if(point[s]>maxp)maxp=point[s];
        if(point[s]<minp)minp=point[s];
        }
 
        System.out.println(maxp+","+minp);
 
        delta=(maxp-minp)/100;
 
        double x1,e1,v1;
        int tx;
 
        for(sx=0;sx<101;sx++){
        x1=minp+sx*delta;
        e1=(x1-point[s])*(x1-point[s]);
        v[1][sx]=e1;
        }
 
        double minv;
        int txs;
 
        for(s=1;s<datanumber+1;s++){
        for(sx=0;sx<101;sx++){   
        x1=minp+sx*delta;
        e1=(x1-point[s])*(x1-point[s]); 
        minv=99999;
        txs=0;
        for(tx=0;tx<101;tx++){   
        v1=e1+v[s-1][tx];
        if(v1<minv)txs=tx;
        if(v1<minv)minv=v1;
        }
        v[s][sx]=minv;
        gotos[s][sx]=txs;
        }    
        }
 
        int sxs;
 
        minv=999;
        s=datanumber;
        sxs=0;
        for(sx=0;sx<101;sx++){ 
        if(v[s][sx]<minv)sxs=sx;
        if(v[s][sx]<minv)minv=v[s][sx];
        }
 
        System.out.println(sxs+","+minv);
 
        route[datanumber]=sxs;
 
        for(s=1;s<datanumber;s++){
        sx=route[datanumber+1-s];
        route[datanumber-s]=gotos[datanumber+1-s][sx];    
        }
 
        double p1;
 
        for(s=1;s<datanumber+1;s++){
        sx=route[s];
        p1=minp+sx*delta;
        System.out.println(point[s]+","+p1);
        }
 
 
 
 
 
    }
}
 
最終更新:2014年03月06日 07:35