org.apache.commons.math3.util
Class CombinatoricsUtils

java.lang.Object
  extended by org.apache.commons.math3.util.CombinatoricsUtils

public final class CombinatoricsUtils
extends Object

Combinatorial utilities.

Since:
3.1
Version:
$Id: CombinatoricsUtils.java 14178 2015-10-12 06:11:28Z galpin $

Method Summary
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!, the factorial of n (the product of the numbers 1 to n), as a double.
static double factorialLog(int n)
          Compute the natural logarithm of the factorial of n.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

binomialCoefficient

public static long binomialCoefficient(int n,
                                       int k)
                                throws NotPositiveException,
                                       NumberIsTooLargeException,
                                       MathArithmeticException
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.

Preconditions:

Parameters:
n - the size of the set
k - the size of the subsets to be counted
Returns:
n choose k
Throws:
NotPositiveException - if n < 0.
NumberIsTooLargeException - if k > n.
MathArithmeticException - if the result is too large to be represented by a long integer.

binomialCoefficientDouble

public static double binomialCoefficientDouble(int n,
                                               int k)
                                        throws NotPositiveException,
                                               NumberIsTooLargeException,
                                               MathArithmeticException
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.

Preconditions:

Parameters:
n - the size of the set
k - the size of the subsets to be counted
Returns:
n choose k
Throws:
NotPositiveException - if n < 0.
NumberIsTooLargeException - if k > n.
MathArithmeticException - if the result is too large to be represented by a long integer.

binomialCoefficientLog

public static double binomialCoefficientLog(int n,
                                            int k)
                                     throws NotPositiveException,
                                            NumberIsTooLargeException,
                                            MathArithmeticException
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.

Preconditions:

Parameters:
n - the size of the set
k - the size of the subsets to be counted
Returns:
n choose k
Throws:
NotPositiveException - if n < 0.
NumberIsTooLargeException - if k > n.
MathArithmeticException - if the result is too large to be represented by a long integer.

factorial

public static long factorial(int n)
                      throws NotPositiveException,
                             MathArithmeticException
Returns n!. Shorthand for n Factorial, the product of the numbers 1,...,n.

Preconditions:

Parameters:
n - argument
Returns:
n!
Throws:
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.

factorialDouble

public static double factorialDouble(int n)
                              throws NotPositiveException
Compute n!, the factorial of 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.

Parameters:
n - Argument.
Returns:
n!
Throws:
NotPositiveException - if n < 0.

factorialLog

public static double factorialLog(int n)
                           throws NotPositiveException
Compute the natural logarithm of the factorial of n.

Parameters:
n - Argument.
Returns:
n!
Throws:
NotPositiveException - if n < 0.

checkBinomial

public static void checkBinomial(int n,
                                 int k)
                          throws NumberIsTooLargeException,
                                 NotPositiveException
Check binomial preconditions.

Parameters:
n - Size of the set.
k - Size of the subsets to be counted.
Throws:
NotPositiveException - if n < 0.
NumberIsTooLargeException - if k > n.


Copyright © 2016 CNES. All Rights Reserved.