코딩하는 해맑은 거북이

[Python] 순열(Permutation)과 조합(Combination) 본문

Python/기본

[Python] 순열(Permutation)과 조합(Combination)

#CJE 2023. 1. 5.
해당 글은 아래의 2가지를 다룬다.
1. 순열(Permutation)
2. 조합(Combination)

 

1. 순열(Permutation) : nPr

: 서로 다른 n개에서 r개를 뽑아 순서를 정해서 일렬로 나열하는 것.

from itertools import permutations
perm = list(permutations('n개 원소를 갖는 리스트', r))

 

<예제>

from itertools import permutations
data = [1, 2, 3, 4]
perm = list(permutations(data, 2))
print(perm)
perm = list(permutations(data, 3))
print(perm)

    [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]

 

    [(1, 2, 3), (1, 2, 4), (1, 3, 2), (1, 3, 4), (1, 4, 2), (1, 4, 3), (2, 1, 3), (2, 1, 4), (2, 3, 1), (2, 3, 4), (2, 4, 1), (2, 4, 3), (3, 1, 2), (3, 1, 4), (3, 2, 1), (3, 2, 4), (3, 4, 1), (3, 4, 2), (4, 1, 2), (4, 1, 3), (4, 2, 1), (4, 2, 3), (4, 3, 1), (4, 3, 2)]

 

 

 

2. 조합(Combination) : nCr

: 서로 다른 n개에서 순서를 생각하지 않고 r개를 뽑는 것.

from itertools import combinations
perm = list(combinations('n개 원소를 갖는 리스트', r))

 

<예제>

from itertools import combinations
data = [1, 2, 3, 4]
combi = list(combinations(data, 2))
print(combi)
combi = list(combinations(data, 3))
print(combi)

    [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]

 

    [(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]

 

 

 

Comments