lundi 5 novembre 2018

Exponential distribution in Java not right - values too small?

I am trying to generate an exponential distribution for arrival and service times of processes. In C++, the example I have works fine and generates pseudo-random numbers in the range [0, inf) and some are bigger as expected. In Java, it does not work. The numbers are orders of magnitude smaller than their C++ equivalents, and I NEVER get any values > 0.99 even though I am using the same formula. In C++ I get 1.xx, or 2.xx etc., but never in Java.

In Java:

Random rand = new Random();
x =  (Math.log(1-rand.nextDouble())/(-lambda));

I have also tried:

x = 0;
while (x == 0)
{
   x = (-1/lambda)*log(rand.nextDouble());
}




Aucun commentaire:

Enregistrer un commentaire