18. 경우의 수 (Number of Cases: 예측과 확률의 코어 엔진)
이 단원의 핵심 (Chapter Focus)
17세기 천재 수학자 블레즈 파스칼(Blaise Pascal) 이 도박사의 판돈 미스터리 질문에 답하며 문을 연 ‘확률(Probability)’ 과 ‘경우의 수’ 의 논리는, 오늘날 알파고와 같은 인공지능이 바둑을 두고 미래를 100% 예측하는 빅데이터 머신러닝의 가장 핵심적인 뼈대가 되었습니다.
우리는 이제 감과 미신에 의존하지 않고, 무작위로 발생하는 세상 만물의 사건들을 빠짐없이(No Missing), 또한 겹침 없이(No Duplication) 추출하는 파이썬의 itertools 해킹 로직을 학습합니다.
자물쇠 비밀번호를 일일이 대입하는 ‘순열(Permutation)’ 부터, 814만 분의 1 확률을 뚫는 로또 시뮬레이터 ‘조합(Combination)’, 그리고 묶음 배열 및 사이버펑크 도시의 미로 개척(최단 경로 알고리즘)까지 모든 경우의 수를 무자비하게 찾아내는 즐거움을 만끽해 보십시오.
목차 (Table of Contents)
- 00. 직감과 확률의 세계로: 천재 블레즈 파스칼 (Visual: 17세기 도박장 테이블에서 빛나는 주사위 홀로그램 공식을 풀고 있는 파스칼의 AI 일러스트)
- 01. 합과 곱의 법칙, 그리고 파이썬 Product 엔진 (Python: 상의 X 하의 X 신발의 수많은 패션 조합 경우를
itertools.product세트 데카르트 곱으로 1초 만에 렌더링 검증) - 02. 암호와 순서의 세계, 순열(Permutation) (Python: 순서 배열이 핵심인 자물쇠 5P3의 무차별 팩토리얼 비밀번호 스캐너 해킹 시뮬레이션)
- 03. 제비뽑기와 조합, 로또의 세계(Combination) (Python: 순서를 배제한 평등의 산술식 45C6로 구현한 무자비한 814만 확률의 로또 렌더링 엔진)
- 04. 이웃하여 줄 서는 묶음(Grouping) 테크닉 (Visual: 친한 친구 3명을 거대한 하나의 보이지 않는 끈으로 감아 분할 배치하는 덩어리 팩토리얼 묶음 배열의 SVG 플로우)
- 05. 바둑판 미로와 최단 경로 알고리즘 (Visual: 사이버펑크 퓨처 뉴욕 맵에서의 맨해튼 거리 최단 경로, 그리고 역주행 불가 합의 법칙의 네온 아트워크)
- 06. 이긴 자만 살아남는다: 리그전과 토너먼트 (Visual: 모든 자를 한 번씩 마주치는 조합론 리그 펜타그램과, 무조건 N-1명 제거 학살 방식인 토너먼트의 구조 대조 SVG 다이어그램)
서브목차