Generating Random Variates From An Inverse-Gaussian Distribution
The following algorithm may be used.
Generate a random variate from a normal distribution with a mean of 0 and 1 standard deviation
Square the value
and use this relation
Generate another random variate, this time sampled from a uniformed distribution between 0 and 1
If
then return
else return
Sample code in Java:
public double inverseGaussian(double mu, double lambda) { Random rand = new Random; double v = rand.nextGaussian; // sample from a normal distribution with a mean of 0 and 1 standard deviation double y = v*v; double x = mu + (mu*mu*y)/(2*lambda) - (mu/(2*lambda)) * Math.sqrt(4*mu*lambda*y + mu*mu*y*y); double test = rand.nextDouble; // sample from a uniform distribution between 0 and 1 if (test <= (mu)/(mu + x)) return x; else return (mu*mu)/x; }Read more about this topic: Inverse Gaussian Distribution
Famous quotes containing the words random and/or distribution:
“Assemble, first, all casual bits and scraps
That may shake down into a world perhaps;
People this world, by chance created so,
With random persons whom you do not know”
—Robert Graves (18951985)
“In this distribution of functions, the scholar is the delegated intellect. In the right state, he is, Man Thinking. In the degenerate state, when the victim of society, he tends to become a mere thinker, or, still worse, the parrot of other mens thinking.”
—Ralph Waldo Emerson (18031882)






