#include #include #include #define MAX_PARTICLES 100000 main() { unsigned int seed; int nran; int i,j; int istep,nstep; int im,m[100]; float a1; float h; float x[MAX_PARTICLES]; double step; FILE *output; output = fopen("nm.dat","w"); printf("Input: seed\n"); scanf("%u", &seed); /* printf("seed=%u\n",seed); */ printf("Number of particles:\n"); scanf("%u", &nran); printf("Input: Number of steps:\n"); scanf("%u", &nstep); srand(seed); for(i=0; i < 50; i++){ m[i]=0; } h=1.0; for(i=0; i < nran; i++){ x[i]=0.0; for(istep=0; istep < nstep; istep++){ j=rand(); a1=j/(RAND_MAX+1.0); /* printf("a1=%.5f\n",a1); */ if(a1<0.5) x[i]=x[i]-h; else x[i]=x[i]+h; } /* printf("x=%.5f\n",x[i]); */ im=(int) (5.0*fabs(x[i]))/sqrt((double) nstep); /* printf("x=%f\tim=%d\n",x[i],im); */ m[im]=m[im]+1; } for(im=0; im<20; im++){ printf("%.2f %d\n",im/5.0,m[im]); fprintf(output, "%.2f %d\n",im/5.0,m[im]); } return; }