Python

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번째 항의 계수와 동일하기 때문에 이항 계수(binomial coefficient)라고도 불립니다.

인자 중 하나라도 음수이면 ValueError 를 발생시킵니다.

math.integer.factorial(n, /)

음이 아닌 정수 n 의 계승(factorial)을 반환합니다.

math.integer.gcd(*integers)

지정된 정수 인자들의 최대 공약수를 반환합니다. 인자 중 하나라도 0이 아니면, 모든 인자의 약수이면서 가장 큰 양의 정수를 반환합니다. 모든 인자가 0이면 0 을 반환합니다. 인수가 없는 gcd()0 을 반환합니다.

math.integer.isqrt(n, /)

음이 아닌 정수 n 의 정수 제곱근을 반환합니다. 이는 n 의 정확한 제곱근의 바닥(floor) 값이며, 또는 동일하게 a ² ≤ n 을 만족하는 가장 큰 정수 a 입니다.

어떤 응용 프로그램에서는 na ²를 만족하는 가장 작은 정수 a, 즉 n 의 정확한 제곱근의 올림(ceiling) 값이 더 편리할 수 있습니다. 양의 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 이면, kn 으로 기본 설정되며 함수는 n! 을 반환합니다.

인자 중 하나라도 음수이면 ValueError 를 발생시킵니다.