수학이야기 78. 순열 (Permutation)

📌 학습 개요

누군가 “이것과 저것 중에 선택해!” 라고 소리칠 때, 수학자들은 그 뒷면에 도사리고 있는 폭발적인 경우의 수 우주의 별들을 계산해 냅니다. 이번 78장에서는 중첩된 갈림길에서 발생하는 평행 우주의 개수를 컴퓨터 과학과 해커들의 시선으로 카운팅하는 기술, 순열(Permutation) 의 딥다이브를 시작합니다. 서로 다른 대상에 직급(서열) 을 꽂아버리는 순열(${}_n\mathrm{P}_r$), 이 안에서 찰싹 붙거나 철저히 나뉘는 이웃 제어 알고리즘, 비밀번호 패턴을 뚫어버리는 중복순열($n^r$), 복제 인간들의 뻥튀기 값을 분수로 억제하는 동자순열(미로 찾기), 그리고 마지막으로 시작과 끝의 경계를 파괴한 원순열($(n-1)!$) 의 물리적 공방을 체험합니다. 파이썬과 팩토리얼 무기를 쥐고, 터져 나가는 기하급수의 숲을 제초기를 들고 밀어붙여 봅시다.

2D 웹툰 사이버펑크 애니 마법판타지 스타일. 홀로그램 트럼프 카드와 자물쇠 다이얼을 능숙하게 조합하며 순열의 위력을 뽐내는 천재 애니메이션 해커의 모습.

📚 목차 (Table of Contents)

  1. 1. 분기점과 미로의 설계: ‘합의 법칙과 곱의 법칙’
    • 두 사건이 “이거나(OR) 독립적평행선” 인지, “이고(AND) 꼬리를 무는 연속극” 인지를 판별하여, 더하기와 곱하기라는 시스템 분기점의 설계도를 완성합니다.
  2. 2. 자리가 사람을 만든다: ‘순열 (Permutation)’
    • 단순히 고르는 것(조합) 과 달리 고른 것을 1등, 2등으로 매칭하고 서열화하는 줄 세우기 시스템, 즉 ‘팩토리얼($!$)’ 코어 엔진이 뻗어 나가는 원리를 파이썬을 통해 찍어냅니다.
  3. 3. 찰거머리와 웬수들: ‘이웃하거나, 이웃하지 않게 세우기’
    • 모듈화 그룹핑(왕도토리 취급) 을 통한 이웃 연산 압축법과, 안전지대 사이 빈 슬롯에 웬수들을 꽂아 넣어 격리하는 보안 코딩의 진수를 맛봅니다.
  4. 4. 무한 리필과 암호 생상의 마법: ‘중복순열’
    • 무한정 다시 골라도 되는 비밀번호, 모스부호 같은 거듭제곱($n^r$) 무한루프 모델을 거쳐, 파이썬 Brute-Force 공격으로 3자리 자물쇠를 단 0.01초 만에 해제하는 크랙을 수행합니다.
  5. 5. 미로 탈출과 같은 문자의 해킹: ‘직사각형 최단 경로’
    • 도로망 미로찾기를 U, R 알파벳 나열(동자순열) 로 데이터 압축한 뒤, 치명적인 환형 복제 인간 데이터를 무자비한 분모 나누기 스킬로 발골(도려내기) 하는 기술을 터득합니다.
  6. 6. 시작과 끝이 없는 우주: ‘원순열 (Circular Permutation)’
    • 원탁 위의 회전이 만들어내는 “다 똑같은 배열인데 눈속임” 이라는 거대한 시스템 블러핑 현상을 격파하고자, 파이썬 Deque(데크) 모듈을 이용한 회전 보정 모델을 증명합니다.
서브목차