Class CombinationSampler
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.
Sampling uses UniformRandomProvider.nextInt(int).
- See Also:
PermutationSampler
-
Constructor Summary
Constructors Constructor Description CombinationSampler(UniformRandomProvider rng, int n, int k)Creates a generator of combinations. -
Method Summary
Modifier and Type Method Description int[]sample()Return a combination ofkwhose entries are selected randomly, without repetition, from the integers 0, 1, ...,n-1 (inclusive).
-
Constructor Details
-
CombinationSampler
Creates a generator of combinations.The
sample()method will generate an integer array of lengthkwhose entries are selected randomly, without repetition, from the integers 0, 1, ...,n-1 (inclusive). The returned array represents a combination ofntakenk.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 <= 0ork <= 0ork > nthen no combination is required and an exception is raised.- Parameters:
rng- Generator of uniformly distributed random numbers.n- Domain of the combination.k- Size of the combination.- Throws:
java.lang.IllegalArgumentException- ifn <= 0ork <= 0ork > n.
-
-
Method Details
-
sample
public int[] sample()Return a combination ofkwhose 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.
- Returns:
- a random combination.
-