Chapter 01. 기초 수학
순열 (Permutation) - 경우의 수의 기본
1. 순열의 정의
순열(Permutation): n개 중에서 r개를 순서를 고려하여 나열하는 방법의 수

예를 들어 4개의 카드 {1, 2, 3, 4} 중 2개를 순서 있게 나열하면

이다.
2. 순열과 팩토리얼의 관계
순열은 팩토리얼(계승) 을 통해 간단히 표현할 수 있다.

즉, 전체 n개를 모두 곱한 값(n!)에서
선택하지 않은 나머지 항의 곱((n−r)!)을 나눈 값이 순열의 개수다.
| 구분 | 계산식 | 결과 |
| 8P3 | 336 | |
| 7P5 | 2520 |
💡 순열은 “선택”과 “순서”가 모두 중요한 경우에 사용된다.
3. 실전 예시 – 카드 나열
카드 4장을 일렬로 나열하되,
삼각형과 사각형이 서로 이웃하도록 나열하는 경우의 수는?
- 삼각형/사각형 묶음의 순서: 3! = 6
- 내부 카드 순서: 2! = 2
- 전체 경우의 수:
3!×2!=12
💡 문제에서 “이웃” 조건이 들어가면, 묶음 단위로 그룹화한 뒤 순열을 계산한다.
4. 파이썬으로 순열 구현
순열은 직접 계산하거나 itertools 라이브러리를 활용할 수 있다.
import math
# 기본 공식 이용
n, r = 8, 3
print(f"{n}P{r} =", math.perm(n, r)) # Python 3.8 이상 지원
# 또는 직접 계산
result = math.factorial(n) // math.factorial(n - r)
print("직접 계산:", result)
출력 결과:
8P3 = 336
직접 계산: 336
5. 원순열 (Circular Permutation)
원순열이란, 시작과 끝의 구분이 없는 순열이다.
즉, 일렬이 아니라 원형으로 배치되는 경우를 말한다.
- 예시: {1, 2, 3}
- 일렬 순열 → 3! = 6
- 원형 순열 → (3−1)! = 2
n개의원소를원형으로배치할때경우의수=(n−1)
| 원소 수 (n) | 일렬 순열 | 원순열 | 비고 |
| 3 | 6 | 2 | 시작점 회전이 동일하게 간주됨 |
| 4 | 24 | 6 | 4명의 친구가 원탁에 앉는 경우 등 |
💡 원순열은 회전이 동일한 배치로 간주되므로 전체 순열에서 중복을 제거한 개념이다.
💻 파이썬 실습 – 원순열 계산
import math
def circular_perm(n):
return math.factorial(n - 1)
print(circular_perm(4)) # 6
print(circular_perm(5)) # 24
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
이번 강의에서는 “순서가 중요할 때의 조합 원리”를 구체적으로 이해할 수 있었다.
단순히 nCr과 달리, 순열은 순서가 바뀌면 완전히 다른 경우로 취급된다는 점이 핵심이다.
팩토리얼을 기반으로 순열을 간단히 계산할 수 있으며, 이를 코드로 구현해보면서 수학적 개념이 실제 로직으로 연결된다는 점이 흥미로웠다.
또한 “원순열” 개념은 일상적인 문제(예: 원탁 좌석, 원형 그래프 등)에서도 자주 등장하므로, 단순한 수학 공식이 아닌 공간적 사고를 동반한 경우의 수 개념으로 이해해야 한다고 느꼈다.
🚀 적용점
- 프로그래밍 활용
- math.perm()과 math.factorial()을 이용해 순열 계산 자동화
- itertools.permutations()로 직접 나열 결과 확인
- 수학적 응용
- “순서 고려” 여부에 따라 순열(P) vs 조합(C) 구분
- 원순열은 회전 중복 제거 개념으로 이해
- 시각화 연습
- 원탁 배치 문제를 원형 그래프로 표현해보기
- matplotlib로 좌석 배치/경로 탐색 문제 시각화
👉 이번 강의는 경우의 수의 기초이자,
데이터 분석·AI 알고리즘에서의 조합 최적화 사고로 확장할 수 있는 출발점이었다.
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-14 (0) | 2025.11.01 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-13 (0) | 2025.10.31 |
| 제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-11 (0) | 2025.10.28 |
| 제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-10 (0) | 2025.10.27 |
| 제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-09 (0) | 2025.10.27 |

