d*z 发帖数: 150 | 1
#define MINV -10
#define MAXV 30
double prob[MAXV-MINV+1];
double tprob[MAXV-MINV+1];
int main()
{
int i,j;
prob[10-MINV]=1.0;
for(i=0;i<20;i++){
tprob[0]=prob[0];
for(j=1;j<=MAXV-MINV-1;j++){
tprob[j-1]+=prob[j]/2.0;
tprob[j+1]+=prob[j]/2.0;
}
tprob[MAXV-MINV-1]+=prob[MAXV-MINV]/2.0;
memcpy(prob,tprob,sizeof(tprob));
}
printf("%.13f\n",prob[0]);
} |
|