public class Combinations extends Object implements Iterable<int[]>
(n, k)
of k
elements
in a set of n
elements.Constructor and Description |
---|
Combinations(int n,
int k)
Creates an instance whose range is the k-element subsets of
{0, ..., n - 1} represented as
int[] arrays. |
Modifier and Type | Method and Description |
---|---|
Comparator<int[]> |
comparator()
Defines a lexicographic ordering of combinations.
|
int |
getK()
Gets the number of elements in each combination.
|
int |
getN()
Gets the size of the set from which combinations are drawn.
|
Iterator<int[]> |
iterator() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public Combinations(int n, int k)
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]
k == 0
an iterator containing an empty array is returned;
if k == n
an iterator containing [0, ..., n - 1] is returned.n
- Size of the set from which subsets are selected.k
- Size of the subsets to be enumerated.MathIllegalArgumentException
- if n < 0
.MathIllegalArgumentException
- if k > n
.public int getN()
public int getK()
public Comparator<int[]> comparator()
iterator
.
Its compare(int[],int[])
method will throw exceptions if
passed combinations that are inconsistent with this instance:
k
,n
).Copyright © 2016-2021 CS GROUP. All rights reserved.