How do I generate discrete random events with a Poisson distribution?
I'm aware of Knuth's algorithm for generating random Poisson distributed numbers (below in Java) but how do I translate that into calling a method, generateEvent() , randomly over time? int poissonRandomNumber(int lambda) { double L = Math.exp(-lambda); int k = 0; double p = 1; do { k = k + 1; double u = Math.random(); p = p * u; } while (p > L); return k - 1; } Jay Elston If you are looking to simulate the inter-event arrival time, you want the exponential distribution. Take a look at Pseudorandom Number Generator - Exponential Distribution Your code would then look like this: // Note L == 1