Skip to main content
`Ctrl`+`K`

# scipy.special.comb

scipy.special.comb(N, k, *, exact=False, repetition=False, legacy=<object object>)

  The number of combinations of N things taken k at a time.

  This is often expressed as “N choose k”.

  Parameters:
    N int, ndarray

      Number of things.

    k int, ndarray

      Number of elements taken.

    exact bool, optional

      For integers, if exact is False, then floating point precision is used, otherwise the result is computed exactly. For non-integers, if exact is True, is disregarded.

    repetition bool, optional

      If repetition is True, then the number of combinations with repetition is computed.

    legacy bool, optional

      If legacy is True and exact is True, then non-integral arguments are cast to ints; if legacy is False, the result for non-integral arguments is unaffected by the value of exact.

      Deprecated since version 1.9.0: Using legacy is deprecated and will removed by Scipy 1.14.0. If you want to keep the legacy behaviour, cast your inputs directly, e.g. `comb(int(your_N), int(your_k), exact=True)`.

  Returns:
    val int, float, ndarray

      The total number of combinations.

  See also

  `binom`

    Binomial coefficient considered as a function of two real variables.

  Notes

  - Array arguments accepted only for exact=False case.

  - If N < 0, or k < 0, then 0 is returned.

  - If k > N and repetition=False, then 0 is returned.

  Examples

      >>> import numpy as np
      >>> from scipy.special import comb
      >>> k = np.array([3, 4])
      >>> n = np.array([10, 10])
      >>> comb(n, k, exact=False)
      array([ 120.,  210.])
      >>> comb(10, 3, exact=True)
      120
      >>> comb(10, 3, exact=True, repetition=True)
      220