public class HyperGeometric extends AbstractDiscreteDistribution
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.
Implementation: High performance implementation. Patchwork Rejection/Inversion method.
H. Zechner (1994): Efficient sampling from continuous and discrete unimodal distributions, Doctoral Dissertation, 156 pp., Technical University Graz, Austria.
Constructor and Description |
---|
HyperGeometric(int N,
int s,
int n,
DoubleRandomEngine randomGenerator)
Constructs a HyperGeometric distribution.
|
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.
|
String |
toString()
Returns a String representation of the receiver.
|
nextDouble
apply, apply, clone, makeDefaultGenerator
public HyperGeometric(int N, int s, int n, DoubleRandomEngine randomGenerator)
public int nextInt()
nextInt
in class AbstractDiscreteDistribution
public int nextInt(int N, int s, int n)
public double pdf(int k)
public void setState(int N, int s, int n)
public static double staticNextInt(int N, int M, int n)
Jump to the Parallel Colt Homepage