/* Generate random deviates from exponential distribution */ /* with parameter lambda (inverse transform method) */ /* precision: 1/1000000 */ /* f(x) = lambda * exp(-lambda * x) */ #include <math.h> double exponential_dist(double lambda) { int val; double a,b; val = random() % 1000000; a = ((double) val) / (double) 1000000.0; b = -log(a) / lambda; return(b); }