アットウィキロゴ

v23

package delya;
 
 
public class pro {
 
 
    double[][] p=new double[3][3];
    double[][] q=new double[3][3];
    int[] point=new int[300];
  int[] delta=new int[300];
      double[][] v=new double[300][3];
  int[][] gotok=new int[300][3];
  int[] op=new int[300];
 
    public static void main(String[] args) {
        pro t=new pro();
    }
 
    pro(){
 
    int s;
        for(s=1;s<101;s++){
          point[s]=1;
          if(Math.random()>0.5)point[s]=2;
        }
 
        p[1][1]=0.9;
        p[2][2]=0.9;
        p[1][2]=0.1;
        p[2][1]=0.1;
 
        q[1][1]=0.9;
        q[2][2]=0.9;
        q[1][2]=0.1;
        q[2][1]=0.1;
 
 
        int de;
        for(de=1;de<11;de++){
 
        int sx=point[1];
        v[1][1]=p[1][sx];
        v[1][2]=p[2][sx];
 
        int tx;
 
        for(s=2;s<101;s++){
        int p1=point[s];
        for(sx=1;sx<3;sx++){
        double u1=p[p1][sx];
       double maxv=-999;
       int sxs=0;
       for(tx=1;tx<3;tx++){
       double v1=v[s-1][tx]*u1*q[sx][tx];    
       if(v1>maxv)sxs=tx; 
       if(v1>maxv)maxv=v1; 
       }    
       gotok[s][sx]=sxs;
       v[s][sx]=maxv;
        }
       }
 
        sx=1;
        if(v[100][2]>v[100][1])sx=2;
 
 
        op[100]=sx;
 
        for(s=1;s<100;s++){
        sx=101-s;
        int k=op[sx];    
        op[sx-1]=gotok[sx][k];
        }
 
 
        int[][] count=new int[3][3];
        int[][] ch=new int[3][3];
 
        count[1][1]=0;
        count[1][2]=0;
        count[2][1]=0;
        count[2][2]=0;
 
          ch[1][1]=0;
        ch[1][2]=0;
        ch[2][1]=0;
        ch[2][2]=0;
 
        for(s=1;s<101;s++){
        int s1=point[s];
        int s2=op[s];
        count[s2][s1]=count[s2][s1]+1;
        }
 
        for(s=1;s<100;s++){
        int s1=op[s];
        int s2=op[s+1];
        ch[s1][s2]=ch[s1][s2]+1;
        }
 
 
      int c1=count[1][1]+count[1][2];
double p1=0;
   if(c1>0)p1=100*count[1][1]/c1;      
      p1=p1/100;
    if(p1<0.6)p1=0.6; 
      if(p1<0.9*p[1][1])p1=0.9*p[1][1];      
       if(p1>1.1*p[1][1])p1=1.1*p[1][1];
       p[1][1]=p1;
       p[1][2]=1-p1;
 
         c1=count[2][1]+count[2][2];
p1=0;
   if(c1>0)p1=100*count[2][2]/c1;      
 
p1=p1/100;
      if(p1<0.6)p1=0.6; 
      if(p1<0.9*p[2][2])p1=0.9*p[2][2];      
       if(p1>1.1*p[2][2])p1=1.1*p[2][2];
       p[2][2]=p1;
       p[2][1]=1-p1;
 
 
           c1=ch[2][1]+ch[2][2];
p1=0;
   if(c1>0)p1=100*ch[2][2]/c1;      
      p1=p1/100;
      if(p1>0.9)p1=0.9; 
       if(p1<0.6)p1=0.6; 
      if(p1<0.9*q[2][2])p1=0.9*q[2][2];      
       if(p1>1.1*q[2][2])p1=1.1*q[2][2];
       q[2][2]=p1;
       q[2][1]=1-p1;
 
          c1=ch[1][1]+ch[1][2];
p1=0;
          if(c1>0)p1=100*ch[1][1]/c1;      
      p1=p1/100;
       if(p1<0.6)p1=0.6; 
       if(p1>0.9)p1=0.9; 
       if(p1<0.9*q[1][1])p1=0.9*q[1][1];      
       if(p1>1.1*q[1][1])p1=1.1*q[1][1];
       q[1][1]=p1;
       q[1][2]=1-p1;
 
        System.out.println("A,"+q[1][1]+","+q[2][2]);
        System.out.println("B,"+p[1][1]+","+p[2][2]);
 
 
        }
 
 
 
 
 
 
 
 
 
    }
 
 
 
 
}
 
最終更新:2016年04月29日 22:02