/* Driver for routine poidev */ #include #define NRANSI #include "nr.h" #define N 20 #define NPTS 10000 #define ISCAL 200 #define LLEN 50 int main(void) { char txt[LLEN+1]; long idum=(-13); int i,j,k,klim,dist[N+1]; float xm,dd; for (;;) { for (j=0;j<=N;j++) dist[j]=0; do { printf("Mean of Poisson distribution (0.0 N); if (xm < 0.0) break; for (i=1;i<=NPTS;i++) { j=(int) (0.5+poidev(xm,&idum)); if ((j >= 0) && (j <= N)) ++dist[j]; } printf("Poisson-distributed deviate, mean %5.2f of %6d points\n", xm,NPTS); printf("%5s %8s %10s\n","x","p(x)","graph:"); for (j=0;j<=N;j++) { dd=(float) dist[j]/NPTS; for (k=0;k<=LLEN;k++) txt[k]=' '; klim=(int) (ISCAL*dd); if (klim > LLEN) klim=LLEN; for (k=1;k<=klim;k++) txt[k]='*'; txt[LLEN]='\0'; printf("%6d %8.4f %s\n",j,dd,txt); } } return 0; } #undef NRANSI