01. 첫 번째 수업: 순서가 지배하는 권력, 순열 (Permutation)

$A, B, C, D, E$ 라는 다섯 명의 플레이어가 게임 서버 랭킹전에 접속했습니다. 이 중에서 오직 최고 레벨 단 $3$명만을 꼽아서 차례대로 $[1등, 2등, 3등]$ 시상대 에 욱여넣으려 합니다.

이 시나리오가 그릴 수 있는 미친 평행우주 엔딩의 가지 수는 총 몇 개일까요? 손가락으로 $(A,B,C), (A,B,D), (B,A,C)…$ 세다가는 날이 샙니다. 바로 이 짓을 컴퓨터처럼 $1$초 만에 박살 내는 곱셈 파이프라인 엔진이 바로 순열(Permutation) 입니다.

순열 파이프라인 5P3 SVG

1. 랭킹 시상대 파이프라인 (루프 연산)

우리가 방금 마주한 “경우의 수” 우주 생성 규칙에는 가장 무서운 필터 하나가 락(Lock) 으로 걸려 있습니다.

엄격한 철칙: “$[A, B, C]$ 순서 조합과, $[C, B, A]$ 순서 조합” 은 절대 똑같은 이벤트 시나리오가 아니다!

$A$가 $1$등(회장) 이고 $C$가 $3$등 인 세계관과, $C$가 $1$등 하고 $A$가 $3$등 떨거지인 세계관은 피가 튀는 권력의 위계가 완전히 바뀐 다른 세계입니다! 이렇게 “뽑혀 나온 순서의 자리 배치(Order)” 에 따라 목숨값이 갈리는 경우의 구조를 우리는 순열(Permutation: 순서대로 나란히 줄 세우기 배열) 이라고 부릅니다.

어떻게 해킹 연산해야 할까요? 머릿속에 투명한 $3$개의 [빈 상자] 슬롯을 렌더링 합시다!

[연속 뽑기 슬롯 머신 가동]

  1. 첫 번째 상자 (1등의 자리): 다섯 명의 인간 중 아직 아무도 자리에 앉지 않았습니다. 이 금메달 상자에 들어갈 수 있는 후보는? $\rightarrow$ $\mathbf{5}$ 명 전체 입니다! ($5$가지 분기점 트리 폭발)
  2. 두 번째 상자 (2등의 자리): 누군지 몰라도 아까 첫 번째 상자에 운 좋은 한 놈이 빨려 들어가면서 우주에서 증발했습니다. 이제 남은 인간은 몇 명입니까? $\rightarrow$ 딱 $\mathbf{4}$ 명 후보 만 남았습니다! ($4$가지 잔가지 트리가 또 밑에 더덕 붙음)
  3. 세 번째 상자 (3등의 자리): 앞에서 $1, 2$등 두 놈이 사라졌습니다. 이제 남은 떨거지는? $\rightarrow$ $\mathbf{3}$ 명 후보 뿐입니다! ($3$가지 미세 잔가지 부착)

자! 이 사건은 $1$등을 뽑은 상태에서 “그리고 이어 붙여 연달아 동시에 AND!” $2$등과 $3$등 슬롯까지 마저 채우는 복합 콤보 이벤트이기 때문에 이전 25권에서 배웠던 무자비한 “곱의 법칙($\times$)” 파이프라인이 찰칵 돌아가야 합니다.

순열 결괏값 도출: $5$가지 $\times$ $4$가지 $\times$ $3$가지 = 총 $\mathbf{60}$ 개의 시상대 엔딩 시나리오(경우의 수)!

2. 순열의 수학 기호 P (Permutation)

수학자들은 매번 “야 $5$마리 중에 순서대로 등수 매겨서 $3$놈 골라 세트로 곱해!” 라고 한국말로 적는 게 너무 귀찮았습니다. 그래서 이 긴 매크로 변수 코드를 압축어 명령 구문 하나에 다 담았습니다. 바로 머리글자 $\mathbf{P}$ 를 씁니다.

$\mathbf{_5P_3}$ (또는 $P(5, 3)$) = “총 인벤토리에 $\mathbf{5}$마리 객체가 있는데, 그중에서 랭킹 슬롯 $\mathbf{3}$칸짜리 의자를 준비해 놓고 차례대로($-1$씩 깎아가면서) 팩토리얼 곱셈 루프를 쳐 돌려라!”

만약 시험지에 $\mathbf{_8P_2}$ ($8$명 중 $2$명 반장, 부반장) 가 떴다면? 해커는 $0.1$초 만에 “$8$부터 시작해서, 뒤로 하나씩 깎으면서 딱 $2$칸어치만 곱해라! = $\mathbf{8 \times 7 = 56}$ 끝!” 하고 돌려버립니다.

만약 $10$명이 들어있는 교실에서 무려 똑같이 $10$명 전체 숫자를 몽땅 전부 다 불러내서 $1$등부터 꼴찌까지 쭉 한 줄로 기차 줄 세우기를 시키면 어떻게 될까요? $(\mathbf{{10}P{10}})$ 코드로는 $10 \times 9 \times 8 \times \dots 1$ 까지 끝없이 $1$이 뜰 때까지 브레이크 없이 내려가며 끔찍하게 곱해버릴 것입니다. 이 끝까지 다 뽑아 갈리는 기차 충돌 루틴을 지칭하는 기괴한 “느낌표($!$)” 심볼, ‘팩토리얼’ 로 다음 챕터에서 넘어가 뵙겠습니다.

서브목차