Class Combinations
java.lang.Object
org.apache.commons.numbers.combinatorics.Combinations
- All Implemented Interfaces:
Iterable<int[]>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classDefines a lexicographic ordering of the combinations.private static classLexicographic combinations iterator.private static classIterator with just one element to handle degenerate cases (full array, empty array) for combination iterator. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionComparator<int[]> Creates a comparator.intgetK()Gets the number of elements in each combination.intgetN()Gets the size of the set from which combinations are drawn.Iterator<int[]> iterator()Creates an iterator whose range is the k-element subsets of {0, ..., n - 1} represented asint[]arrays.static Combinationsof(int n, int k) Create an instance.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Iterable
forEach, spliterator
-
Field Details
-
n
private final int nSize of the set from which combinations are drawn. -
k
private final int kNumber of elements in each combination.
-
-
Constructor Details
-
Combinations
private Combinations(int n, int k) - Parameters:
n- Size of the set from which subsets are selected.k- Size of the subsets to be enumerated.- Throws:
IllegalArgumentException- ifn < 0.IllegalArgumentException- ifk > nork < 0.
-
-
Method Details
-
of
Create an instance.- Parameters:
n- Size of the set from which subsets are selected.k- Size of the subsets to be enumerated.- Returns:
- a new instance.
- Throws:
IllegalArgumentException- ifn < 0.IllegalArgumentException- ifk > nork < 0.
-
getN
public int getN()Gets the size of the set from which combinations are drawn.- Returns:
- the size of the universe.
-
getK
public int getK()Gets the number of elements in each combination.- Returns:
- the size of the subsets to be enumerated.
-
iterator
Creates an iterator whose range is the k-element subsets of {0, ..., n - 1} represented asint[]arrays.The iteration order is lexicographic: the arrays returned by the
Ifiteratorare sorted in descending order and they are visited in lexicographic order with significance from right to left. For example,new Combinations(4, 2).iterator()returns an iterator that will generate the following sequence of arrays on successive calls tonext():
[0, 1], [0, 2], [1, 2], [0, 3], [1, 3], [2, 3]k == 0an iterator containing an empty array is returned; ifk == nan iterator containing [0, ..., n - 1] is returned. -
comparator
Creates a comparator. When performing a comparison, if an element of the array is not within the interval [0,n), anIllegalArgumentExceptionwill be thrown.- Returns:
- a comparator.
-