public class CombinationSampler extends java.lang.Object
A combination is a selection of items from a collection, such that (unlike
permutations) the order of selection does not matter. This
sampler can be used to generate a combination in an unspecified order and is
faster than the corresponding PermutationSampler.
Note that the sample order is unspecified. For example a sample
combination of 2 from 4 may return [0,1] or [1,0] as the two are
equivalent, and the order of a given combination may change in subsequent samples.
The sampler can be used to generate indices to select subsets where the order of the subset is not important.
PermutationSampler| Constructor | Description |
|---|---|
CombinationSampler(org.apache.commons.rng.UniformRandomProvider rng,
int n,
int k) |
Creates a generator of combinations.
|
| Modifier and Type | Method | Description |
|---|---|---|
int[] |
sample() |
Return a combination of
k whose entries are selected randomly,
without repetition, from the integers 0, 1, ..., n-1 (inclusive). |
public CombinationSampler(org.apache.commons.rng.UniformRandomProvider rng, int n, int k)
The sample() method will generate an integer array of
length k whose entries are selected randomly, without
repetition, from the integers 0, 1, ..., n-1 (inclusive).
The returned array represents a combination of n taken
k.
In contrast to a permutation, the returned array is not
guaranteed to be in a random order. The sample()
method returns the array in an unspecified order.
If n <= 0 or k <= 0 or k > n then no combination
is required and an exception is raised.
rng - Generator of uniformly distributed random numbers.n - Domain of the combination.k - Size of the combination.java.lang.IllegalArgumentException - if n <= 0 or k <= 0 or
k > n.public int[] sample()
k whose entries are selected randomly,
without repetition, from the integers 0, 1, ..., n-1 (inclusive).
The order of the returned array is not guaranteed to be in a random order as the order of a combination does not matter.
Copyright © 2016–2018 The Apache Software Foundation. All rights reserved.