org.apache.commons.math3.random

## Class RandomAdaptor

- java.lang.Object
- - java.util.Random
  - - org.apache.commons.math3.random.RandomAdaptor

All Implemented Interfaces:
  java.io.Serializable, RandomGenerator

    public class RandomAdaptor
    extends java.util.Random
    implements RandomGenerator

Extension of `java.util.Random` wrapping a `RandomGenerator`.

Since:
  1.1
Version:
  $Id: RandomAdaptor.java 1416643 2012-12-03 19:37:14Z tn $
See Also:
  Serialized Form

### Field Summary

Fields
`private RandomGenerator` `randomGenerator` Wrapped randomGenerator instance
`private static long` `serialVersionUID` Serializable version identifier.

### Constructor Summary

Constructors
`private` `RandomAdaptor()` Prevent instantiation without a generator argument
`` `RandomAdaptor(RandomGenerator randomGenerator)` Construct a RandomAdaptor wrapping the supplied RandomGenerator.

### Method Summary

Methods
`static java.util.Random` `createAdaptor(RandomGenerator randomGenerator)` Factory method to create a `Random` using the supplied `RandomGenerator`.
`boolean` `nextBoolean()` Returns the next pseudorandom, uniformly distributed `boolean` value from this random number generator's sequence.
`void` `nextBytes(byte[] bytes)` Generates random bytes and places them into a user-supplied byte array.
`double` `nextDouble()` Returns the next pseudorandom, uniformly distributed `double` value between `0.0` and `1.0` from this random number generator's sequence.
`float` `nextFloat()` Returns the next pseudorandom, uniformly distributed `float` value between `0.0` and `1.0` from this random number generator's sequence.
`double` `nextGaussian()` Returns the next pseudorandom, Gaussian ("normally") distributed `double` value with mean `0.0` and standard deviation `1.0` from this random number generator's sequence.
`int` `nextInt()` Returns the next pseudorandom, uniformly distributed `int` value from this random number generator's sequence.
`int` `nextInt(int n)` Returns a pseudorandom, uniformly distributed `int` value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence.
`long` `nextLong()` Returns the next pseudorandom, uniformly distributed `long` value from this random number generator's sequence.
`void` `setSeed(int seed)` Sets the seed of the underlying random number generator using an `int` seed.
`void` `setSeed(int[] seed)` Sets the seed of the underlying random number generator using an `int` array seed.
`void` `setSeed(long seed)` Sets the seed of the underlying random number generator using a `long` seed.

### Methods inherited from class java.util.Random

`next`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### serialVersionUID

    private static final long serialVersionUID

Serializable version identifier.

See Also:
  Constant Field Values

#### randomGenerator

    private final RandomGenerator randomGenerator

Wrapped randomGenerator instance

### Constructor Detail

#### RandomAdaptor

    private RandomAdaptor()

Prevent instantiation without a generator argument

#### RandomAdaptor

    public RandomAdaptor(RandomGenerator randomGenerator)

Construct a RandomAdaptor wrapping the supplied RandomGenerator.

Parameters:
  `randomGenerator` - the wrapped generator

### Method Detail

#### createAdaptor

    public static java.util.Random createAdaptor(RandomGenerator randomGenerator)

Factory method to create a `Random` using the supplied `RandomGenerator`.

Parameters:
  `randomGenerator` - wrapped RandomGenerator instance
Returns:
  a Random instance wrapping the RandomGenerator

#### nextBoolean

    public boolean nextBoolean()

Returns the next pseudorandom, uniformly distributed `boolean` value from this random number generator's sequence.

Specified by:
  `nextBoolean` in interface `RandomGenerator`
Overrides:
  `nextBoolean` in class `java.util.Random`
Returns:
  the next pseudorandom, uniformly distributed `boolean` value from this random number generator's sequence

#### nextBytes

    public void nextBytes(byte[] bytes)

Generates random bytes and places them into a user-supplied byte array. The number of random bytes produced is equal to the length of the byte array.

Specified by:
  `nextBytes` in interface `RandomGenerator`
Overrides:
  `nextBytes` in class `java.util.Random`
Parameters:
  `bytes` - the non-null byte array in which to put the random bytes

#### nextDouble

    public double nextDouble()

Returns the next pseudorandom, uniformly distributed `double` value between `0.0` and `1.0` from this random number generator's sequence.

Specified by:
  `nextDouble` in interface `RandomGenerator`
Overrides:
  `nextDouble` in class `java.util.Random`
Returns:
  the next pseudorandom, uniformly distributed `double` value between `0.0` and `1.0` from this random number generator's sequence

#### nextFloat

    public float nextFloat()

Returns the next pseudorandom, uniformly distributed `float` value between `0.0` and `1.0` from this random number generator's sequence.

Specified by:
  `nextFloat` in interface `RandomGenerator`
Overrides:
  `nextFloat` in class `java.util.Random`
Returns:
  the next pseudorandom, uniformly distributed `float` value between `0.0` and `1.0` from this random number generator's sequence

#### nextGaussian

    public double nextGaussian()

Returns the next pseudorandom, Gaussian ("normally") distributed `double` value with mean `0.0` and standard deviation `1.0` from this random number generator's sequence.

Specified by:
  `nextGaussian` in interface `RandomGenerator`
Overrides:
  `nextGaussian` in class `java.util.Random`
Returns:
  the next pseudorandom, Gaussian ("normally") distributed `double` value with mean `0.0` and standard deviation `1.0` from this random number generator's sequence

#### nextInt

    public int nextInt()

Returns the next pseudorandom, uniformly distributed `int` value from this random number generator's sequence. All 232 possible `int` values should be produced with (approximately) equal probability.

Specified by:
  `nextInt` in interface `RandomGenerator`
Overrides:
  `nextInt` in class `java.util.Random`
Returns:
  the next pseudorandom, uniformly distributed `int` value from this random number generator's sequence

#### nextInt

    public int nextInt(int n)

Returns a pseudorandom, uniformly distributed `int` value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence.

Specified by:
  `nextInt` in interface `RandomGenerator`
Overrides:
  `nextInt` in class `java.util.Random`
Parameters:
  `n` - the bound on the random number to be returned. Must be positive.
Returns:
  a pseudorandom, uniformly distributed `int` value between 0 (inclusive) and n (exclusive).
Throws:
  `java.lang.IllegalArgumentException` - if n is not positive.

#### nextLong

    public long nextLong()

Returns the next pseudorandom, uniformly distributed `long` value from this random number generator's sequence. All 264 possible `long` values should be produced with (approximately) equal probability.

Specified by:
  `nextLong` in interface `RandomGenerator`
Overrides:
  `nextLong` in class `java.util.Random`
Returns:
  the next pseudorandom, uniformly distributed `long` value from this random number generator's sequence

#### setSeed

    public void setSeed(int seed)

Sets the seed of the underlying random number generator using an `int` seed.

Sequences of values generated starting with the same seeds should be identical.

Specified by:
  `setSeed` in interface `RandomGenerator`
Parameters:
  `seed` - the seed value

#### setSeed

    public void setSeed(int[] seed)

Sets the seed of the underlying random number generator using an `int` array seed.

Sequences of values generated starting with the same seeds should be identical.

Specified by:
  `setSeed` in interface `RandomGenerator`
Parameters:
  `seed` - the seed value

#### setSeed

    public void setSeed(long seed)

Sets the seed of the underlying random number generator using a `long` seed.

Sequences of values generated starting with the same seeds should be identical.

Specified by:
  `setSeed` in interface `RandomGenerator`
Overrides:
  `setSeed` in class `java.util.Random`
Parameters:
  `seed` - the seed value