math.integer --- 整数専用の数学関数

Added in version 3.15.


このモジュールは、整数引数に対して定義された数学関数を提供します。 これらの関数は、整数と __index__() メソッドを実装したオブジェクトを受け付けます。 このメソッドはオブジェクトを整数に変換するために使われます。

このモジュールは以下の関数を提供します。 戻り値はすべて正確に計算された整数です。

math.integer.comb(n, k, /)

n 個の中から k 個を重複無く順序をつけずに選ぶ方法の数を返します。

k <= n のとき n! / (k! * (n - k)!) と評価し、k > n のとき 0 と評価します。

これは (1 + x)ⁿ の多項式展開における第 k 項の係数と等しいので、二項係数とも呼ばれます。

引数のいずれかが負の場合、ValueError を送出します。

math.integer.factorial(n, /)

非負整数 n の階乗を返します。

math.integer.gcd(*integers)

指定された整数引数の最大公約数を返します。0 でない引数があれば、返される値は全ての引数の約数である最大の正の整数です。全ての引数が 0 なら、返される値は 0 です。引数の無い gcd() は 0 を返します。

math.integer.isqrt(n, /)

非負整数 n の整数平方根を返します。これは n の正確な平方根の床であり、 a² ≤ n を満たす最大の整数 a と等価です。

用途によっては、n ≤ a² を満たす最小の整数 a、つまり n の正確な平方根の天井を求める方が便利な場合があります。 正の n に対しては、a = 1 + isqrt(n - 1) で計算できます。

math.integer.lcm(*integers)

指定された整数引数の最小公倍数を返します。全ての引数が 0 でなければ、返される値は全ての引数の倍数である最小の正の整数です。引数に 0 があれば、返される値は 0 です。引数の無い lcm() は 1 を返します。

math.integer.perm(n, k=None, /)

n 個の中から k 個を重複無く順序をつけて選ぶ方法の数を返します。

k <= n のとき n! / (n - k)! と評価し、k > n のとき 0 と評価します。

k を指定しない場合や None の場合、k のデフォルト値は n となり、関数は n! を返します。

引数のいずれかが負の場合、ValueError を送出します。