package lda;
public class pro {
int[][] v=new int[7][7];
double[][] th=new double[3][7];
double[][] paper=new double[7][3];
double[][] ps=new double[7][3];
public static void main(String[] args) {
pro y=new pro();
}
pro(){
v[1][1]=1;
v[1][2]=1;
v[2][2]=1;
v[2][3]=1;
v[3][1]=1;
v[3][3]=1;
v[4][4]=1;
v[4][5]=1;
v[5][5]=1;
v[5][6]=1;
v[6][4]=1;
v[6][6]=1;
int s,sx;
for(s=1;s<3;s++){
for(sx=1;sx<7;sx++){
th[s][sx]=Math.random();
}
}
for(s=1;s<7;s++){
paper[s][1]=Math.random();
paper[s][2]=1-paper[s][1];
}
int k;
for(k=1;k<11;k++){
for(s=1;s<7;s++){
double p1=paper[s][1];
for(sx=1;sx<7;sx++){
if(v[s][sx]==0)p1=p1*0.01;
if(v[s][sx]==1)p1=p1*th[1][sx];
}
ps[s][1]=p1;
}
for(s=1;s<7;s++){
double p1=paper[s][2];
for(sx=1;sx<7;sx++){
if(v[s][sx]==0)p1=p1*0.01;
if(v[s][sx]==1)p1=p1*th[2][sx];
}
ps[s][2]=p1;
}
for(s=1;s<7;s++){
double p1=ps[s][1]+ps[s][2];
paper[s][1]=ps[s][1]/p1;
paper[s][2]=1-paper[s][1];
}
int s1,s2;
double[] q=new double[3];
int tr;
for(tr=1;tr<3;tr++){
q[tr]=0;
for(s=1;s<7;s++){
q[tr]=q[tr]+paper[s][tr];
}
q[tr]=q[tr]/6;
}
double[] w=new double[7];
for(tr=1;tr<7;tr++){
w[tr]=0;
for(s=1;s<7;s++){
if(v[s][tr]==1)w[tr]=w[tr]+1;
}
w[tr]=w[tr]/6;
}
int tx;
double[][] delta=new double[7][3];
for(s=1;s<7;s++){
for(sx=1;sx<3;sx++){
double m1=0;
double m2=0;
for(tx=1;tx<7;tx++){
if(v[tx][s]==1)m1=m1+1;
if(v[tx][s]==1)m2=m2+paper[tx][sx];
}
delta[s][sx]=m2/m1;
}
}
for(s=1;s<3;s++){
for(sx=1;sx<7;sx++){
th[s][sx]=delta[sx][s]*w[sx]/q[s];
}
}
}
for(s=1;s<7;s++){
System.out.println(s+","+paper[s][1]);
}
for(s=1;s<7;s++){
System.out.println(th[1][s]);
}
}
}
最終更新:2016年05月12日 12:09