Python の二項係数
Shivam Arora
2023年10月10日
-
Python で
scipy
モジュールを使用して二項係数を計算する -
Python で
math.comb()
関数を使用して二項係数を計算する -
Python で
operator
モジュールを使用して二項係数を計算する -
Python で
math.fact()
関数を使用して二項係数を計算する
![Python の二項係数](/img/Python/feature-image---calculate-binomial-coefficient-python.webp)
数学的に言えば、二項係数は、n
個のアイテムのセットを形成するために使用できるアイテムの数の r
の組み合わせの数です。または、この係数は、順序付けられていない結果を選択する方法の数であると言えます。可能性からの道。
この記事では、Python で二項係数を計算します。
Python で scipy
モジュールを使用して二項係数を計算する
SciPy には、二項係数を計算する 2つの方法があります。最初の関数は scipy.special.binom()
と呼ばれます。この関数は通常、大きな値を効率的に処理します。
例えば、
import scipy.special
print(scipy.special.binom(10, 5))
出力:
252.0
二項係数を返す 2 番目の関数は、scipy.special.comb()
と呼ばれます。
例えば、
import scipy.special
print(scipy.special.comb(10, 5))
出力:
252.0
Python で math.comb()
関数を使用して二項係数を計算する
math
モジュールの comb()
関数は、指定された値の組み合わせを返します。これは、基本的に二項係数と同じ式を持ちます。このメソッドは、Python 3.8 以降の最近のバージョンに追加されたものです。
例えば、
import math
print(math.comb(10, 5))
出力:
252
Python で operator
モジュールを使用して二項係数を計算する
古いバージョンの Python では、math.factorial
が存在しないため、使用できませんでした。これを補正し、はるかに短い時間で出力を生成するために、math
モジュールと operator
モジュールを一緒に使用できます。
ラムダ関数の積は、数値の積を取得するために 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
Python で math.fact()
関数を使用して二項係数を計算する
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