Class Combinations.LexicographicComparator
- java.lang.Object
-
- org.apache.commons.numbers.combinatorics.Combinations.LexicographicComparator
-
- All Implemented Interfaces:
java.io.Serializable,java.util.Comparator<int[]>
- Enclosing class:
- Combinations
private static class Combinations.LexicographicComparator extends java.lang.Object implements java.util.Comparator<int[]>, java.io.SerializableDefines a lexicographic ordering of the combinations. The comparison is based on the value (in base 10) represented by the digit (interpreted in basen) in the input array, in reverse order.
-
-
Field Summary
Fields Modifier and Type Field Description private intkNumber of elements in each combination.private intnSize of the set from which combinations are drawn.private static longserialVersionUIDSerializable version identifier.
-
Constructor Summary
Constructors Constructor Description LexicographicComparator(int n, int k)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompare(int[] c1, int[] c2)private longlexNorm(int[] c)Computes the value (in base 10) represented by the digit (interpreted in basen) in the input array in reverse order.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
Serializable version identifier.- See Also:
- Constant Field Values
-
n
private final int n
Size of the set from which combinations are drawn.
-
k
private final int k
Number of elements in each combination.
-
-
Method Detail
-
compare
public int compare(int[] c1, int[] c2)- Specified by:
comparein interfacejava.util.Comparator<int[]>- Throws:
java.lang.IllegalArgumentException- if the array lengths are not equal tok.java.lang.IllegalArgumentException- if an element of the array is not within the interval [0,n).
-
lexNorm
private long lexNorm(int[] c)
Computes the value (in base 10) represented by the digit (interpreted in basen) in the input array in reverse order. For example ifcis{3, 2, 1}, andnis 3, the method will return 18.- Parameters:
c- Input array.- Returns:
- the lexicographic norm.
- Throws:
java.lang.IllegalArgumentException- if an element of the array is not within the interval [0,n).
-
-