이 섹션에서는 파이썬 프로그래밍 언어를 사용하여 주어진 시퀀스의 순열과 조합을 찾는 방법을 배울 것입니다.
다른 프로그래밍 언어에 비해 Python의 주요 이점 중 하나는 방대한 라이브러리 세트와 함께 제공된다는 것입니다.
우리는 파이썬 내장 패키지를 사용하여 주어진 시퀀스의 순열과 조합을 찾을 것입니다.
순열과 조합을 찾는 알고리즘
-
1단계 :필요한 패키지를 가져옵니다. 첫 번째 단계는 필요한 패키지를 가져오는 것입니다. itertools 패키지를 사용할 것이므로 다음을 사용하여 가져오기만 하면 됩니다.
>>> import itertools >>>
-
2단계 :시퀀스의 모든 순열 및 조합을 가져옵니다. 두 번째 단계는 튜플 목록의 형태로 모든 순열 및 조합을 반환할 입력으로 시퀀스/항목 목록을 입력하는 것입니다.
-
순열과 조합의 길이도 설정할 수 있습니다.
-
3단계 :결과 인쇄 마지막 단계는 시퀀스 세트의 모든 순열과 조합을 인쇄하는 것입니다. 루프 기능을 사용하여 결과를 인쇄할 수 있습니다.
순열
세 항목 목록의 순열을 구해 봅시다.
예시 1
from itertools import permutations seq = permutations(['a','b','c']) for p in list(seq): print(p)
결과
('a', 'b', 'c') ('a', 'c', 'b') ('b', 'a', 'c') ('b', 'c', 'a') ('c', 'a', 'b') ('c', 'b', 'a')
예시 2:
순열의 길이를 정의하여 순열을 찾습니다.
from itertools import permutations seq = permutations(['p', 'y', 't', 'h', 'o', 'n'], 2) for p in list(seq): print(p)
결과
('p', 'y') ('p', 't') ('p', 'h') ('p', 'o') ('p', 'n') ('y', 'p') ('y', 't') ('y', 'h') ('y', 'o') ('y', 'n') ('t', 'p') ('t', 'y') ('t', 'h') ('t', 'o') ('t', 'n') ('h', 'p') ('h', 'y') ('h', 't') ('h', 'o') ('h', 'n') ('o', 'p') ('o', 'y') ('o', 't') ('o', 'h') ('o', 'n') ('n', 'p') ('n', 'y') ('n', 't') ('n', 'h') ('n', 'o')
조합
파이썬을 이용하여 시퀀스의 조합을 찾아봅시다.
예 1:조합의 길이 결정
#Import itertools package from itertools import combinations #Getting all combination of a particular length. combi = combinations(['p', 'y', 't', 'h', 'o', 'n'], 5) #Print the list of combinations for c in list(combi): print(c)
결과
('p', 'y', 't', 'h', 'o') ('p', 'y', 't', 'h', 'n') ('p', 'y', 't', 'o', 'n') ('p', 'y', 'h', 'o', 'n') ('p', 't', 'h', 'o', 'n') ('y', 't', 'h', 'o', 'n')
예시 2:대체물이 있는 조합
#Import itertools package from itertools import combinations_with_replacement #Getting all combination by defining a particular length. combi = combinations_with_replacement(['p', 'y', 't', 'h', 'o', 'n'], 2) #Print the list of combinations for c in list(combi): print(c)
결과
('p', 'p') ('p', 'y') ('p', 't') ('p', 'h') ('p', 'o') ('p', 'n') ('y', 'y') ('y', 't') ('y', 'h') ('y', 'o') ('y', 'n') ('t', 't') ('t', 'h') ('t', 'o') ('t', 'n') ('h', 'h') ('h', 'o') ('h', 'n') ('o', 'o') ('o', 'n') ('n', 'n')