Class ExponentialPrng

  extended by edu.rit.numeric.DoublePrng
      extended by edu.rit.numeric.ExponentialPrng

public class ExponentialPrng
extends DoublePrng

Class ExponentialPrng provides a pseudorandom number generator (PRNG) that generates random numbers with an exponential distribution. The probability density function is
    f(x) = λeλx, x ≥ 0
    f(x) = 0, otherwise
The distribution's mean is 1/λ and its standard deviation is 1/λ2.

An exponential distribution is often used to model arrivals or departures in a discrete event simulation. The mean arrival or departure rate is λ; the mean interarrival or interdeparture time is 1/λ.

Every call of the next() method results in one call of the underlying uniform PRNG's nextDouble() method.

Field Summary
Fields inherited from class edu.rit.numeric.DoublePrng
Constructor Summary
ExponentialPrng(Random theUniformPrng, double lambda)
          Construct a new exponential PRNG.
Method Summary
 double next()
          Returns the next random number.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public ExponentialPrng(Random theUniformPrng,
                       double lambda)
Construct a new exponential PRNG.

theUniformPrng - The underlying uniform PRNG.
lambda - Mean rate λ > 0.
NullPointerException - (unchecked exception) Thrown if theUniformPrng is null.
IllegalArgumentException - (unchecked exception) Thrown if λ ≤ 0.
Method Detail


public double next()
Returns the next random number.

Specified by:
next in class DoublePrng
Random number.

Copyright © 2005-2012 by Alan Kaminsky. All rights reserved. Send comments to ark­@­