HOWTO · Python

Python의 이항 계수

이 튜토리얼에서는 이항 계수와 Python에서 이를 계산하는 방법을 보여줍니다.

수학적으로 말하면, 이항 계수는 n개 항목 집합을 형성하는 데 사용할 수 있는 항목 수 r개의 조합 수입니다. 또는 이 계수는 정렬되지 않은 결과를 선택하는 방법의 수라고 말할 수 있습니다 가능성으로부터의 길.

이 기사에서는 Python에서 이항 계수를 계산합니다.

scipy 모듈을 사용하여 Python에서 이항 계수 계산

SciPy에는 이항 계수를 계산하는 두 가지 방법이 있습니다. 첫 번째 함수는 scipy.special.binom()이라고 합니다. 이 함수는 일반적으로 큰 값을 효율적으로 처리합니다.

예를 들어,

import scipy.special

print(scipy.special.binom(10, 5))

출력:

252.0

이항 계수를 반환하는 두 번째 함수는 scipy.special.comb()입니다.

예를 들어,

import scipy.special

print(scipy.special.comb(10, 5))

출력:

252.0

math.comb() 함수를 사용하여 Python에서 이항 계수 계산

math 모듈의 comb() 함수는 본질적으로 이항 계수와 동일한 공식을 갖는 주어진 값의 조합을 반환합니다. 이 방법은 최신 버전의 Python 3.8 이상에 추가된 것입니다.

예를 들어,

import math

print(math.comb(10, 5))

출력:

252

operator 모듈을 사용하여 Python에서 이항 계수 계산

이전 버전의 Python에서는 math.factorial이 없으므로 사용할 수 없습니다. 이를 보상하고 훨씬 더 짧은 시간에 출력을 생성하기 위해 mathoperator 모듈을 함께 사용할 수 있습니다.

람다 함수 곱은 숫자의 곱을 얻기 위해 operator.mul으로 생성됩니다.

예를 들어,

import math
import operator
from functools import reduce


def product(m, n):
    return reduce(operator.mul, range(m, n + 1), 1)


x = 10
y = 5
product(y + 1, x) / product(1, x - y)

출력:

252

math.fact() 함수를 사용하여 Python에서 이항 계수 계산

math 모듈의 fact() 함수를 사용하여 이항 계수 계산을 위한 수학 공식을 구현할 수 있습니다.

아래 코드를 참조하십시오.

from math import factorial as fact


def binomial(n, r):
    return fac(n) // fac(r) // fac(n - r)


print(binomial(10, 5))

출력:

252