アットウィキロゴ

XOR

package nn3;
 
 
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];
  double[][] e_op=new double[11][700];
  int datanumber;
   int[][] alpha=new int[7][4];
   double[][] e=new double[11][700];
 
 
    public static void main(String[] args) {
        pro t=new pro();
    }
    pro(){
 
        number_step=3;
        number=2;
        datanumber=100;
 
        int s,sx;
 
        for(s=1;s<datanumber+1;s++){
        x[s][1]=Math.random();
        x[s][2]=Math.random();
        int h=0;
        if(x[s][1]>0.5)h=h+1;
        if(x[s][2]>0.5)h=h+1;
        if(h==2)y[s]=1;
        h=0;
        if(x[s][1]<0.5)h=h+1;
        if(x[s][2]<0.5)h=h+1;
        if(h==2)y[s]=1;
 
        }
 
        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<101;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);
 
        }
        }
 
 
 
 
         int eq;
 
          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;
 
    }
 
             System.out.println(c1); 
 
 
    }
 
 
 
}
 
最終更新:2017年08月12日 03:25