package nnx;
public class pro {
int[] y=new int[101];
double[][] x=new double[101][4];
int number;
int number_step;
int number_var;
double[] beta=new double[5];
double[][] alpha=new double[5][5];
double[][][] theta=new double[6][5][5];
double[][] sig=new double[5][5];
public static void main(String[] args) {
pro test=new pro();
}
pro(){
int s,eq,tr,v;
number_step=1;
number_var=2;
number=100;
for(s=1;s<number+1;s++){
x[s][1]=Math.random();
x[s][2]=Math.random();
}
for(s=1;s<number+1;s++){
y[s]=0;
int h=0;
if(x[s][1]+x[s][2]>1)y[s]=1;
if(Math.random()>0.9)y[s]=0;
}
faststep sub=new faststep();
sub.x=x;
sub.y=y;
sub.number_step=number_step;
sub.number_var=number_var;
sub.number=number;
sub.makedata();
alpha=sub.alpha_op;
beta=sub.beta_op;
theta=sub.theta_op;
auto sub2=new auto();
sub2.x=x;
sub2.y=y;
sub2.number_step=number_step;
sub2.number_var=number_var;
sub2.number=number;
sub2.alpha=alpha;
sub2.beta=beta;
sub2.theta=theta;
sub2.makedata();
sig=sub2.sig_op;
number_step=number_step+1;
for(eq=1;eq<number_var+1;eq++){
for(v=0;v<number_var+1;v++){
theta[number_step][eq][v]=sig[eq][v];
}
}
nn sub3=new nn();
sub3.x=x;
sub3.y=y;
sub3.number_step=number_step;
sub3.number_var=number_var;
sub3.number=number;
sub3.alpha=alpha;
sub3.beta=beta;
sub3.theta=theta;
sub3.makedata();
alpha=sub3.alpha;
beta=sub3.beta;
theta=sub3.theta;
double[][] e=new double[5][101];
double[][] es=new double[5][101];
int sx;
for(eq=1;eq<number_var+1;eq++){
for(s=1;s<number+1;s++){
double z=alpha[eq][0];
for(sx=1;sx<number_var+1;sx++){
z=z+alpha[eq][sx]*x[s][sx];
}
es[eq][s]=0;
if(z>0)es[eq][s]=1;
}
}
int[] op=new int[106];
for(eq=1;eq<number_var+1;eq++){
for(s=1;s<number+1;s++){
double z=alpha[eq][0];
for(sx=1;sx<number_var+1;sx++){
z=z+alpha[eq][sx]*x[s][sx];
}
es[eq][s]=0;
if(z>0)es[eq][s]=1;
}
}
for(tr=1;tr<number_step+1;tr++){
for(eq=1;eq<number_var+1;eq++){
for(s=1;s<number+1;s++){
e[eq][s]=es[eq][s];
}}
for(eq=1;eq<number_var+1;eq++){
for(s=1;s<number+1;s++){
double z=theta[tr][eq][0];
for(sx=1;sx<number_var+1;sx++){
z=z+theta[tr][eq][sx]*e[sx][s];
}
es[eq][s]=0;
if(z>0)es[eq][s]=1;
}
}
}
for(s=1;s<number+1;s++){
double z=beta[0];
for(sx=1;sx<number_var+1;sx++){
z=z+beta[sx]*es[sx][s];
}
op[s]=0;
if(z>0)op[s]=1;
}
int n=0;
for(s=1;s<number+1;s++){
if(op[s]==y[s])n=n+1;
}
System.out.println(n);
}
}
最終更新:2018年03月13日 01:36