adams.data.random
Class Random

java.lang.Object
  extended by adams.data.random.Random
All Implemented Interfaces:
Serializable

public class Random
extends Object
implements Serializable

Based on JMathArray's org.math.array.util.Random class. But in comparison to the original class, this one here is seedable and all methods are non-static.

Version:
$Revision: 4584 $
Author:
Yann RICHET (original JMathArray code), fracpete (fracpete at waikato dot ac dot nz)
See Also:
Serialized Form

Nested Class Summary
static interface Random.Function
          Based on JMathArray's org.math.array.util.Function.
 
Field Summary
protected  RandomSeedable m_RandEngine
          the random number generator.
 
Constructor Summary
Random()
          Initializes the random number generator with a default (but fixed) seed value.
Random(long seed)
          Initializes the random number generator with the specified seed value.
 
Method Summary
 double beta(double a, double b)
          Generate a random number from a beta random variable.
 double cauchy(double mu, double sigma)
          Generate a random number from a Cauchy random variable (Mean = Inf, and Variance = Inf).
 double chi2(int n)
          Generate a random number from a Chi-2 random variable.
 double dirac(double[] values, double[] prob)
          Generate a random number from a discrete random variable.
 double exponential(double lambda)
          Generate a random number from an exponantial random variable (Mean = 1/lambda, variance = 1/lambda^2).
 double logNormal(double mu, double sigma)
          Generate a random number from a LogNormal random variable.
 double normal(double mu, double sigma)
          Generate a random number from a Gaussian (Normal) random variable.
 int randInt(int i0, int i1)
          Generate a random integer.
 double raw()
          Generate a random number between 0 and 1.
 double rejection(Random.Function fun, double maxFun, double min, double max)
          Generate a random number from a random variable definied by its density function, using the rejection technic.
 double triangular(double min, double max)
          Generate a random number from a symetric triangular random variable.
 double triangular(double min, double med, double max)
          Generate a random number from a non-symetric triangular random variable.
 double uniform(double min, double max)
          Generate a random number from a uniform random variable.
 double weibull(double lambda, double c)
          Generate a random number from a Weibull random variable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_RandEngine

protected RandomSeedable m_RandEngine
the random number generator.

Constructor Detail

Random

public Random()
Initializes the random number generator with a default (but fixed) seed value.


Random

public Random(long seed)
Initializes the random number generator with the specified seed value.

Parameters:
seed - the seed value to use
Method Detail

raw

public double raw()
Generate a random number between 0 and 1. maybe changed for a better random number generator if needed.

Returns:
A double between 0 and 1.

randInt

public int randInt(int i0,
                   int i1)
Generate a random integer.

Parameters:
i0 - Min of the random variable.
i1 - Max of the random variable.
Returns:
An int between i0 and i1.

uniform

public double uniform(double min,
                      double max)
Generate a random number from a uniform random variable.

Parameters:
min - Min of the random variable.
max - Max of the random variable.
Returns:
A double.

dirac

public double dirac(double[] values,
                    double[] prob)
Generate a random number from a discrete random variable.

Parameters:
values - Discrete values.
prob - Probability of each value.
Returns:
A double.

normal

public double normal(double mu,
                     double sigma)
Generate a random number from a Gaussian (Normal) random variable.

Parameters:
mu - Mean of the random variable.
sigma - Standard deviation of the random variable.
Returns:
A double.

chi2

public double chi2(int n)
Generate a random number from a Chi-2 random variable.

Parameters:
n - Degrees of freedom of the chi2 random variable.
Returns:
A double.

logNormal

public double logNormal(double mu,
                        double sigma)
Generate a random number from a LogNormal random variable.

Parameters:
mu - Mean of the Normal random variable.
sigma - Standard deviation of the Normal random variable.
Returns:
A double.

exponential

public double exponential(double lambda)
Generate a random number from an exponantial random variable (Mean = 1/lambda, variance = 1/lambda^2).

Parameters:
lambda - Parmaeter of the exponential random variable.
Returns:
A double.

triangular

public double triangular(double min,
                         double max)
Generate a random number from a symetric triangular random variable.

Parameters:
min - Min of the random variable.
max - Max of the random variable.
Returns:
A double.

triangular

public double triangular(double min,
                         double med,
                         double max)
Generate a random number from a non-symetric triangular random variable.

Parameters:
min - Min of the random variable.
med - Value of the random variable with max density.
max - Max of the random variable.
Returns:
A double.

beta

public double beta(double a,
                   double b)
Generate a random number from a beta random variable.

Parameters:
a - First parameter of the Beta random variable.
b - Second parameter of the Beta random variable.
Returns:
A double.

cauchy

public double cauchy(double mu,
                     double sigma)
Generate a random number from a Cauchy random variable (Mean = Inf, and Variance = Inf).

Parameters:
mu - Median of the Weibull random variable
sigma - Second parameter of the Cauchy random variable.
Returns:
A double.

weibull

public double weibull(double lambda,
                      double c)
Generate a random number from a Weibull random variable.

Parameters:
lambda - First parameter of the Weibull random variable.
c - Second parameter of the Weibull random variable.
Returns:
A double.

rejection

public double rejection(Random.Function fun,
                        double maxFun,
                        double min,
                        double max)
Generate a random number from a random variable definied by its density function, using the rejection technic. !!! WARNING : this simulation technic can take a very long time !!!

Parameters:
fun - Density function (may be not normalized) of the random variable.
maxFun - Max of the function.
min - Min of the random variable.
max - Max of the random variable.
Returns:
A double.


Copyright © 2012 University of Waikato, Hamilton, NZ. All Rights Reserved.