/* spontaneous decay simulation */ #include <stdio.h> #include <math.h> #define lambda 0.01 /* the decay constant */ #define max 1000 /* number of atoms at t=0 */ #define time_max 500 /* time range */ #define seed 11168 /* seed for number generator */ FILE *output; /* internal file name */ main() { int atom, time, number, nloop; double decay; number=nloop=max; /* initial value */ output = fopen("decay.dat", "w"); /* external file name */ srand48(seed); /* seed the number generator */ for (time=0; time<=time_max; time++) /* time loop */ { for (atom=1; atom<=number; atom++) /* atom loop */ { decay=drand48(); if (decay<lambda) nloop--; /* an atom decays */ } number=nloop; fprintf(output, "%d\t%f\n", time, (double) number/max); } fclose (output); }