순열 파이썬 구현

(2024-05-03)

1. 순열 (Ordered Sequence, Permutation)

  ㅇ 전체(n) 중 일부(r)를 선택하여 순서적으로 나열 (nPr)

  ㅇ 경우의 수  :  
[# _nP_r = \frac{n!}{(n-r)!} #]
재귀 트리 2. 파이썬에 의한 순열 구현 例)
def permutation(arr, r):
    result = []
    if r > len(arr):
        return result
    if r == 1:
        for i in arr:
            result.append([i])
    elif r > 1:
        # 주어진 수열 내 각 원소를 추출 및 처리하는 반복문
        for i in range(len(arr)):
            # 주어진 수열과 동일한 수열 생성
            ans = [j for j in arr]
            # 주어진 수열에서 추출된 원소를 제외
            ans.remove(arr[i])
            # 추출된 원소 이외 나머지 수열에 대해 재귀 호출하고, 그 결과를 덧붙이는 반복문
            for p in permutation(ans, r-1):
                # 추출된 원소 arr[i] 뒤에 재귀 호출 permutation(ans, r-1)의 결과 p를 덧붙임
                result.append([arr[i]] + p)
    return result

if __name__ == "__main__" :
    arr = ['a','b','c']
    print(permutation(arr, 3))
        # [['a','b','c'], ['a','c','b'], ['b','a','c'], ['b','c','a'], ['c','a','b'], ['c','b','a']]
    print(permutation(arr, 2))
        # [['a','b'], ['a','c'], ['b','a'], ['b','c'], ['c','a'], ['c','b']]
    print(permutation(arr, 1))
        # [['a'], ['b'], ['c']]

[파이썬 활용]1. 파이썬 사용 예   2. 파이썬 슬라이싱   3. 파이썬 정규표현식   4. 파이썬 파일 처리   5. 파이썬 순열 구현   6. 파이썬 응용  

  1. Top (분류 펼침)      :     1,591개 분류    6,513건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)          편집 후원          편집 이력 (금일 3건)