팩토리얼을 이용하여 수식을 좀 더 간단히 하면 다음과 같습니다.
예를 들어 1, 2, 3, 4, 5처럼 숫자 다섯 개에서 세 개를 선택하여 세 자리 자연수를 만드는 방법의 수를 구해 봅시다.
(1) 일반 수식을 이용한 경우: 5P3 = 5×4×3 = 60
(2) 팩토리얼을 이용한 경우:
파이썬의 itertools 라이브러리를 이용하면 순열과 조합을 쉽게 구현할 수 있습니다. 즉, itertools.permutation을 이용하면, for 문을 사용하지 않고도 다음과 같이 순열을 구할 수 있습니다.
In [1]:
from itertools import permutations # 1, 2, 3 숫자가 적힌 카드가 있을 때, lists = [1, 2, 3] # 카드 중 두 장을 꺼내는 경우의 수 a = list(permutations(lists, 2)) # 순열은 permutations() 함수를 사용합니다 print(list(a))
[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
연습 문제
트럼프 카드가 열 장 있습니다. 열 장 중 임의로 세 장을 뽑을 수 있는 방법의 수를 구하세요.