SciPy는 두 개의 값에 대한 순열(permutation)과 조합(combination)을 손쉽게 계산할 수 있도록 지원하는 파이썬 과학 계산 라이브러리입니다.
순열을 구할 때는 SciPy의 'special' 클래스에 포함된 'perm' 함수를 사용합니다.
'perm' 함수의 기본 문법
scipy.special.perm(N, k)

여기서 N은 전체 항목 수, k는 선택할 항목 수를 의미합니다. 아래 예제를 통해 실제 순열 계산 과정을 살펴보겠습니다.
예제
from scipy.special import perm
my_permute = perm(6, 2, exact = True)
print("The permutation of 6 and 2 is ")
print(my_permute)
출력 결과
The permutation of 6 and 2 is 30
코드 설명
- 필요한 라이브러리(scipy.special의 perm)를 임포트합니다.
- 'perm' 함수에 매개변수(6, 2)와 exact=True 옵션을 전달하여 정확한 정수 값으로 계산합니다.
- 계산된 결과를 변수 my_permute에 할당합니다.
- print() 함수를 통해 해당 변수의 값을 콘솔에 출력합니다.
참고로 exact=True를 지정하면 부동소수점이 아닌 정확한 정수형 결과를 얻을 수 있습니다.
SciPy에서 두 값의 조합 계산하기
조합을 구할 때는 마찬가지로 SciPy의 'special' 클래스에 포함된 'comb' 함수를 사용합니다.
'comb' 함수의 기본 문법
scipy.special.comb(N, k)

아래는 두 값에 대한 조합을 계산하는 예제입니다.
예제
from scipy.special import comb
my_comb = comb(6, 2, exact = True)
print("The combination of 6 and 2 is ")
print(my_comb)
출력 결과
The combination of 6 and 2 is 15
코드 설명
- 필요한 라이브러리(scipy.special의 comb)를 임포트합니다.
- 'comb' 함수에 매개변수(6, 2)와 exact=True 옵션을 전달하여 값을 계산합니다.
- 계산된 결과를 변수 my_comb에 할당합니다.
- print() 함수를 통해 해당 변수의 값을 콘솔에 출력합니다.
이처럼 SciPy의 special 모듈만 활용하면 복잡한 수식을 직접 구현하지 않고도 순열과 조합을 간단하고 정확하게 계산할 수 있습니다.