public final class CombinatoricsUtils extends Object
| Modifier and Type | Method and Description |
|---|---|
static long |
binomialCoefficient(int n,
int k)
Returns an exact representation of the Binomial
Coefficient, "
n choose k", the number of k-element subsets that can be selected from an
n-element set. |
static double |
binomialCoefficientDouble(int n,
int k)
Returns a
double representation of the Binomial
Coefficient, "n choose k", the number of k-element subsets that can be selected from an
n-element set. |
static double |
binomialCoefficientLog(int n,
int k)
Returns the natural
log of the Binomial
Coefficient, "n choose k", the number of k-element subsets that can be selected from an
n-element set. |
static void |
checkBinomial(int n,
int k)
Check binomial preconditions.
|
static long |
factorial(int n)
Returns n!.
|
static double |
factorialDouble(int n)
Compute n!
|
static double |
factorialLog(int n)
Compute the natural logarithm of the factorial of
n. |
public static long binomialCoefficient(int n,
int k)
n choose k", the number of k-element subsets that can be selected from an
n-element set.
Preconditions:
0 <= k <= n (otherwise MathIllegalArgumentException is thrown)long. The largest value of n for which all
coefficients are < Long.MAX_VALUE is 66. If the computed value exceeds Long.MAX_VALUE an
ArithMeticException is thrown.n - the size of the setk - the size of the subsets to be countedn choose kNotPositiveException - if n < 0.NumberIsTooLargeException - if k > n.MathArithmeticException - if the result is too large to be
represented by a long integer.public static double binomialCoefficientDouble(int n,
int k)
double representation of the Binomial
Coefficient, "n choose k", the number of k-element subsets that can be selected from an
n-element set.
Preconditions:
0 <= k <= n (otherwise IllegalArgumentException is thrown)double. The largest value of n for which all
coefficients are < Double.MAX_VALUE is 1029. If the computed value exceeds Double.MAX_VALUE,
Double.POSITIVE_INFINITY is returnedn - the size of the setk - the size of the subsets to be countedn choose kNotPositiveException - if n < 0.NumberIsTooLargeException - if k > n.MathArithmeticException - if the result is too large to be
represented by a long integer.public static double binomialCoefficientLog(int n,
int k)
log of the Binomial
Coefficient, "n choose k", the number of k-element subsets that can be selected from an
n-element set.
Preconditions:
0 <= k <= n (otherwise IllegalArgumentException is thrown)n - the size of the setk - the size of the subsets to be countedn choose kNotPositiveException - if n < 0.NumberIsTooLargeException - if k > n.MathArithmeticException - if the result is too large to be
represented by a long integer.public static long factorial(int n)
n Factorial, the
product of the numbers 1,...,n.
Preconditions:
n >= 0 (otherwise IllegalArgumentException is thrown)long. The largest value of n for which n! <
Long.MAX_VALUE} is 20. If the computed value exceeds Long.MAX_VALUE an ArithMeticException is
thrown.n - argumentn!MathArithmeticException - if the result is too large to be represented
by a long.NotPositiveException - if n < 0.MathArithmeticException - if n > 20: The factorial value is too
large to fit in a long.public static double factorialDouble(int n)
n (the product of the numbers 1 to n), as a double.
The result should be small enough to fit into a double: The
largest n for which n! < Double.MAX_VALUE is 170.
If the computed value exceeds Double.MAX_VALUE, Double.POSITIVE_INFINITY is returned.n - Argument.n!NotPositiveException - if n < 0.public static double factorialLog(int n)
n.n - Argument.n!NotPositiveException - if n < 0.public static void checkBinomial(int n,
int k)
n - Size of the set.k - Size of the subsets to be counted.NotPositiveException - if n < 0.NumberIsTooLargeException - if k > n.Copyright © 2024 CNES. All rights reserved.