package bs;
public class pro {
double[] p=new double[11];
int s;
int[][] x=new int[11][11];
double[] q=new double[11];
double[][] ps=new double[11][11];
public static void main(String[] args) {
pro t=new pro();
}
pro(){
for(s=1;s<11;s++){
p[s]=0.1;
q[s]=0.1;
}
int sx;
for(s=1;s<11;s++){
for(sx=1;sx<101;sx++){
int n1=(int)(10*Math.random())+1;
x[s][n1]=x[s][n1]+1;
}
}
int tr;
for(tr=1;tr<501;tr++){
int t=1;
for(t=1;t<11;t++){
double p1=0;
for(s=1;s<11;s++){
p1=p1+q[s]*x[s][t];
}
for(s=1;s<11;s++){
ps[s][t]=p[t]*q[s]*x[s][t]/p1;
}
}
for(s=1;s<11;s++){
double p1=0;
for(sx=1;sx<11;sx++){
p1=p1+ps[s][sx];
}
q[s]=p1;
}
int n;
for(n=1;n<11;n++){
f(n);
}
}
System.out.println(q[1]);
for(s=1;s<10;s++){
System.out.print(x[1][s]+",");
}
System.out.println(x[1][10]);
}
void f(int n){
int s;
double[] v=new double[11];
v[1]=ps[n][1];
for(s=1;s<11;s++){
v[s]=v[s-1]+ps[n][s];
x[n][s]=0;
}
int sx;
for(s=1;s<101;s++){
double r1=v[10]*Math.random();
int sxs=1;
for(sx=1;sx<11;sx++){
if(r1>v[sx])sxs=sx+1;
}
x[n][sxs]=x[n][sxs]+1;
}
}
}
最終更新:2016年12月07日 03:53