Class Combinations

java.lang.Object
org.apache.commons.numbers.combinatorics.Combinations
All Implemented Interfaces:
java.lang.Iterable<int[]>

public class Combinations
extends java.lang.Object
implements java.lang.Iterable<int[]>
Utility to create combinations (n, k) of k elements in a set of n elements.
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  Combinations.LexicographicComparator
    Defines a lexicographic ordering of the combinations.
  • Constructor Summary

    Constructors 
    Constructor Description
    Combinations​(int n, int k)
    Creates an instance whose range is the k-element subsets of {0, ..., n - 1} represented as int[] arrays.
  • Method Summary

    Modifier and Type Method Description
    int getK()
    Gets the number of elements in each combination.
    int getN()
    Gets the size of the set from which combinations are drawn.
    java.util.Iterator<int[]> iterator()

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator
  • Constructor Details

    • Combinations

      public Combinations​(int n, int k)
      Creates an instance whose range is the k-element subsets of {0, ..., n - 1} represented as int[] arrays.

      The iteration order is lexicographic: the arrays returned by the iterator are 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 to next():
      [0, 1], [0, 2], [1, 2], [0, 3], [1, 3], [2, 3]

      If k == 0 an iterator containing an empty array is returned; if k == n an iterator containing [0, ..., n - 1] is returned.
      Parameters:
      n - Size of the set from which subsets are selected.
      k - Size of the subsets to be enumerated.
      Throws:
      java.lang.IllegalArgumentException - if n < 0.
      java.lang.IllegalArgumentException - if k > n or k < 0.
  • Method Details

    • 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

      public java.util.Iterator<int[]> iterator()
      Specified by:
      iterator in interface java.lang.Iterable<int[]>