Python の二項係数

Shivam Arora 2023年10月10日
  1. Python で scipy モジュールを使用して二項係数を計算する
  2. Python で math.comb() 関数を使用して二項係数を計算する
  3. Python で operator モジュールを使用して二項係数を計算する
  4. Python で math.fact() 関数を使用して二項係数を計算する
Python の二項係数

数学的に言えば、二項係数は、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

関連記事 - Python Math