팩토리얼을 이용하여 수식을 좀 더 간단히 하면 다음과 같습니다.

     

     

    예를 들어 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)]

     

    연습 문제


    트럼프 카드가 열 장 있습니다. 열 장 중 임의로 세 장을 뽑을 수 있는 방법의 수를 구하세요.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.