수학이야기 78. 순열 (Permutation)
📌 학습 개요
누군가 “이것과 저것 중에 선택해!” 라고 소리칠 때, 수학자들은 그 뒷면에 도사리고 있는 폭발적인 경우의 수 우주의 별들을 계산해 냅니다. 이번 78장에서는 중첩된 갈림길에서 발생하는 평행 우주의 개수를 컴퓨터 과학과 해커들의 시선으로 카운팅하는 기술, 순열(Permutation) 의 딥다이브를 시작합니다. 서로 다른 대상에 직급(서열) 을 꽂아버리는 순열(${}_n\mathrm{P}_r$), 이 안에서 찰싹 붙거나 철저히 나뉘는 이웃 제어 알고리즘, 비밀번호 패턴을 뚫어버리는 중복순열($n^r$), 복제 인간들의 뻥튀기 값을 분수로 억제하는 동자순열(미로 찾기), 그리고 마지막으로 시작과 끝의 경계를 파괴한 원순열($(n-1)!$) 의 물리적 공방을 체험합니다. 파이썬과 팩토리얼 무기를 쥐고, 터져 나가는 기하급수의 숲을 제초기를 들고 밀어붙여 봅시다.
📚 목차 (Table of Contents)
- 1. 분기점과 미로의 설계: ‘합의 법칙과 곱의 법칙’
- 두 사건이 “이거나(OR) 독립적평행선” 인지, “이고(AND) 꼬리를 무는 연속극” 인지를 판별하여, 더하기와 곱하기라는 시스템 분기점의 설계도를 완성합니다.
- 2. 자리가 사람을 만든다: ‘순열 (Permutation)’
- 단순히 고르는 것(조합) 과 달리 고른 것을 1등, 2등으로 매칭하고 서열화하는 줄 세우기 시스템, 즉 ‘팩토리얼($!$)’ 코어 엔진이 뻗어 나가는 원리를 파이썬을 통해 찍어냅니다.
- 3. 찰거머리와 웬수들: ‘이웃하거나, 이웃하지 않게 세우기’
- 모듈화 그룹핑(왕도토리 취급) 을 통한 이웃 연산 압축법과, 안전지대 사이 빈 슬롯에 웬수들을 꽂아 넣어 격리하는 보안 코딩의 진수를 맛봅니다.
- 4. 무한 리필과 암호 생상의 마법: ‘중복순열’
- 무한정 다시 골라도 되는 비밀번호, 모스부호 같은 거듭제곱($n^r$) 무한루프 모델을 거쳐, 파이썬 Brute-Force 공격으로 3자리 자물쇠를 단 0.01초 만에 해제하는 크랙을 수행합니다.
- 5. 미로 탈출과 같은 문자의 해킹: ‘직사각형 최단 경로’
- 도로망 미로찾기를 U, R 알파벳 나열(동자순열) 로 데이터 압축한 뒤, 치명적인 환형 복제 인간 데이터를 무자비한 분모 나누기 스킬로 발골(도려내기) 하는 기술을 터득합니다.
- 6. 시작과 끝이 없는 우주: ‘원순열 (Circular Permutation)’
- 원탁 위의 회전이 만들어내는 “다 똑같은 배열인데 눈속임” 이라는 거대한 시스템 블러핑 현상을 격파하고자, 파이썬 Deque(데크) 모듈을 이용한 회전 보정 모델을 증명합니다.
서브목차