package nn3;
import tool.*;
public class pro {
int number_step;
int number;
int[][] link=new int[70][6];
int number_link;
int number_point;
int[] y=new int[700];
double[][] x=new double[700][11];
int datanumber;
int[][] alpha=new int[21][11];
double[][] e=new double[21][700];
String[] data=new String[500];
double[] point=new double[600];
public static void main(String[] args) {
pro t=new pro();
}
pro(){
readfile sub8=new readfile();
sub8.makedata("data.csv","UTF-8");
data=sub8.data;
datanumber=sub8.datanumber;
int s;
for(s=1;s<datanumber+1;s++){
String[] x=data[s].split(",");
point[s]=num_double(x[1]);
}
System.out.println(datanumber);
number_step=2;
number=3;
int sx;
for(s=1;s<datanumber+1;s++){
int s1=s-1;
int s2=s-2;
int s3=s-3;
int s4=s-4;
if(s1<1)s1=1;
if(s2<1)s2=1;
if(s3<1)s3=1;
if(s4<1)s4=1;
double r2=10*(point[s2]/point[s3]-1);
if(r2>1)r2=1;
if(r2<-1)r2=-1;
double r3=10*(point[s3]/point[s4]-1);
if(r3>1)r3=1;
if(r3<-1)r3=-1;
double r1=10*(point[s1]/point[s2]-1);
if(r1>1)r1=1;
if(r1<-1)r1=-1;
x[s][3]=r3;
x[s][2]=r2;
x[s][1]=r1;
if(point[s]-point[s1]>0)y[s]=1;
System.out.println(y[s]);
}
link sub=new link();
sub.number=number;
sub.number_step=number_step;
sub.makedata();
link=sub.link;
number_link=sub.number_link;
number_point=sub.number_point;
faststep sub2=new faststep();
sub2.y=y;
sub2.x=x;
sub2.number=number;
sub2.datanumber=datanumber;
sub2.number_point=number_point;
sub2.number_link=number_link;
sub2.makedata();
e=sub2.e;
drive sub3=new drive();
sub3.e=e;
sub3.x=x;
sub3.y=y;
sub3.link=link;
sub3.number=number;
sub3.datanumber=datanumber;
sub3.number_point=number_point;
sub3.number_link=number_link;
sub3.makedata();
alpha=sub3.alpha;
int tr;
int n;
for(n=1;n<11;n++){
for(tr=1;tr<number_link+1;tr++){
bp sub4=new bp();
sub4.e=e;
sub4.x=x;
sub4.y=y;
sub4.link=link;
sub4.number=number;
sub4.datanumber=datanumber;
sub4.number_point=number_point;
sub4.number_link=number_link;
sub4.alpha=alpha;
sub4.makedata(number_link+1-tr);
}
System.out.println(n+","+count());
}
}
double num_double(String str){
double nx;
nx=0;
try{
nx=Double.parseDouble(str);
}catch (Exception e) {}
return nx;
}
int count(){
int eq;
int s,sx,p;
for(eq=1;eq<number_link;eq++){
double z=0;
for(s=1;s<datanumber+1;s++){
double x1=alpha[eq][0];
int m0=link[eq][0];
for(sx=1;sx<number+1;sx++){
int m1=link[eq][sx];
x1=x1+alpha[eq][sx]*e[m1][s];
}
e[m0][s]=0;
if(x1>0)e[m0][s]=1;
}
}
int c1=0;
double z=0;
eq=number_link;
for(s=1;s<datanumber+1;s++){
double x1=alpha[eq][0];
int m0=link[eq][0];
for(sx=1;sx<number+1;sx++){
int m1=link[eq][sx];
x1=x1+alpha[eq][sx]*e[m1][s];
}
z=0;
if(x1>0)z=1;
int h=0;
if(y[s]>0.5)h=h+1;
if(z>0.5)h=h+1;
if(h==2)c1=c1+1;
h=0;
if(y[s]<0.5)h=h+1;
if(z<0.5)h=h+1;
if(h==2)c1=c1+1;
}
return c1;
}
}
最終更新:2017年08月13日 05:57