## org.apache.commons.math.random
Class BitsStreamGenerator

    java.lang.Object
      org.apache.commons.math.random.BitsStreamGenerator

All Implemented Interfaces:
  RandomGenerator

Direct Known Subclasses:
  MersenneTwister

    public abstract class BitsStreamGenerator

extends java.lang.Object
implements RandomGenerator

Base class for random number generators that generates bits streams.

Since:
  2.0
Version:
  $Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $

Field Summary
`private double` `nextGaussian` Next gaussian.

Constructor Summary
`BitsStreamGenerator()` Creates a new random number generator.

Method Summary
`protected abstract int` `next(int bits)` Generate next pseudorandom number.
`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.
`abstract void` `setSeed(int seed)` Sets the seed of the underyling random number generator using an `int` seed.
`abstract void` `setSeed(int[] seed)` Sets the seed of the underyling random number generator using an `int` array seed.
`abstract void` `setSeed(long seed)` Sets the seed of the underyling random number generator using a `long` seed.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### nextGaussian

    private double nextGaussian

  Next gaussian.

Constructor Detail

### BitsStreamGenerator

    public BitsStreamGenerator()

  Creates a new random number generator.

Method Detail

### setSeed

    public abstract void setSeed(int seed)

  Sets the seed of the underyling 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 abstract void setSeed(int[] seed)

  Sets the seed of the underyling 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 abstract void setSeed(long seed)

  Sets the seed of the underyling 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`
  Parameters:
    `seed` - the seed value

### next

    protected abstract int next(int bits)

  Generate next pseudorandom number.

  This method is the core generation algorithm. It is used by all the public generation methods for the various primitive types `nextBoolean()`, `nextBytes(byte[])`, `nextDouble()`, `nextFloat()`, `nextGaussian()`, `nextInt()`, `next(int)` and `nextLong()`.

  Parameters:
    `bits` - number of random bits to produce
  Returns:
    random bits generated

### 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`
  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`
  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`
  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`
  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`
  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`
  Returns:
    the next pseudorandom, uniformly distributed `int` value from this random number generator's sequence

### nextInt

    public int nextInt(int n)
                throws java.lang.IllegalArgumentException

  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`
  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`
  Returns:
    the next pseudorandom, uniformly distributed `long` value from this random number generator's sequence

Copyright (c) 2003-2011 Apache Software Foundation