cern.jet.random

## Class HyperGeometric

- java.lang.Object
- - cern.colt.PersistentObject
  - - cern.jet.random.AbstractDistribution
    - - cern.jet.random.AbstractDiscreteDistribution
      - - cern.jet.random.HyperGeometric

- All Implemented Interfaces:
    DoubleFunction, IntFunction, java.io.Serializable, java.lang.Cloneable

      public class HyperGeometric
      extends AbstractDiscreteDistribution

  HyperGeometric distribution; See the math definition The hypergeometric distribution with parameters `N`, `n` and `s` is the probability distribution of the random variable X, whose value is the number of successes in a sample of `n` items from a population of size `N` that has `s` 'success' items and `N - s` 'failure' items.

  `p(k) = C(s,k) * C(N-s,n-k) / C(N,n)` where `C(a,b) = a! / (b! * (a-b)!)`.

  valid for N >= 2, s,n <= N.

  Instance methods operate on a user supplied uniform random number generator; they are unsynchronized.

  Static methods operate on a default uniform random number generator; they are synchronized.

  Implementation: High performance implementation. Patchwork Rejection/Inversion method.

  This is a port of `hprsc.c` from the C-RAND / WIN-RAND library. C-RAND's implementation, in turn, is based upon

  H. Zechner (1994): Efficient sampling from continuous and discrete unimodal distributions, Doctoral Dissertation, 156 pp., Technical University Graz, Austria.

  Version:
    1.0, 09/24/99
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class cern.colt.PersistentObject

      `serialVersionUID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HyperGeometric(int N, int s, int n, RandomEngine randomGenerator)` Constructs a HyperGeometric distribution.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `nextInt()` Returns a random number from the distribution.
    `int` | `nextInt(int N, int s, int n)` Returns a random number from the distribution; bypasses the internal state.
    `double` | `pdf(int k)` Returns the probability distribution function.
    `void` | `setState(int N, int s, int n)` Sets the parameters.
    `static double` | `staticNextInt(int N, int M, int n)` Returns a random number from the distribution.
    `java.lang.String` | `toString()` Returns a String representation of the receiver.

    - ### Methods inherited from class cern.jet.random.AbstractDiscreteDistribution

      `nextDouble`

    - ### Methods inherited from class cern.jet.random.AbstractDistribution

      `apply, apply, clone, makeDefaultGenerator`

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

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### HyperGeometric

          public HyperGeometric(int N,
                        int s,
                        int n,
                        RandomEngine randomGenerator)

      Constructs a HyperGeometric distribution.

  - ### Method Detail

    - #### nextInt

          public int nextInt()

      Returns a random number from the distribution.
      Specified by:
        `nextInt` in class `AbstractDiscreteDistribution`

    - #### nextInt

          public int nextInt(int N,
                    int s,
                    int n)

      Returns a random number from the distribution; bypasses the internal state.

    - #### pdf

          public double pdf(int k)

      Returns the probability distribution function.

    - #### setState

          public void setState(int N,
                      int s,
                      int n)

      Sets the parameters.

    - #### staticNextInt

          public static double staticNextInt(int N,
                             int M,
                             int n)

      Returns a random number from the distribution.

    - #### toString

          public java.lang.String toString()

      Returns a String representation of the receiver.
      Overrides:
        `toString` in class `java.lang.Object`

Jump to the Colt Homepage