00. 인트로: 신은 주사위 놀이를 하는가? (Intro)

“컴퓨터 프로그래밍은 무조건 투입한 대로 결괏값이 나와야 해!” 초보 개발자들은 이렇게 막연하게 생각합니다. 하지만 실제 우리가 플레이하는 게임의 MMORPG 아이템 드롭률 뽑기, 몬스터가 갑자기 오른쪽으로 꺾을지 왼쪽으로 꺾을지에 대한 난수 테이블, 그리고 양자 역학의 알파고 AI 알고리즘의 깊숙한 곳에는 모두 통제할 수 없는 ‘확률(Probability)’ 엔진인 주사위가 숨어 있습니다.

확률은 미래를 $100\%$ 맞추기 위해 있는 것이 아닙니다. 알 수 없는 혼돈의 미래 시나리오들을 우리가 계산 가능한 “비율(%) 과 파이 조각” 들로 쪼개서 포획(Capture) 하기 위해 고안된 가장 방어적인 수학의 그물망입니다.

2D 웹툰: 미스터리한 수학자가 어둡고 네온 빛이 도는 몽환적인 카지노 방 안에서 빛나는 반투명 주사위들을 허공에 굴리고 있다. 굴러가는 주사위 주변으로 유령처럼 퍼져나가는 멀티버스 분기점 트리 다이어그램과 1/6, 50% 같은 홀로그램 수식들이 둥둥 떠다니며 미래를 계산하는 극적이고 교육적인 씬

1. 멀티버스의 숫자를 세다

동전 하나를 공중으로 팅깁니다. 바닥에 떨어지기 직전인 이 $1$초 동안, 세상은 ‘앞면이 나온 평행우주’‘뒷면이 나온 평행우주’, 정확히 두 갈래($2$가지 분기점) 로 쪼개져 렌더링 됩니다. 이때 “앞면, 뒷면” 처럼 어떤 테스트(사건) 를 돌렸을 때 튀어나올 수 있는 모든 평행 우주의 최종 결괏값의 개수(리스트 항목들) 를 우리는 “경우의 수 (Number of Cases)” 라고 부릅니다.

주사위를 굴리면 경우의 수는 여섯 갈래 평행우주($1, 2, 3, 4, 5, 6$) 로 분할되어 모니터에 뿌려집니다. 이것이 확률을 해킹하는 가장 첫 번째 시작 베이스 스크립트입니다.

2. 예측 불허가 가져오는 시스템의 도파민

게임 개발자가 칼을 휘두를 때 데미지 $100$을 고정적으로 주도록 코딩했다고 칩시다. 게이머는 $3$일 만에 완벽한 스크립트를 파악해 내고 지루함을 느껴 게임을 삭제할 것입니다.

하지만 훌륭한 게임 디자이너는 그 칼에 “크리티컬 히트!” 라는 조작된 확률의 주사위를 교묘하게 칩셋으로 박아 넣습니다.

  • “내가 타격할 때 $10\%$ 확률로 데미지가 $300$ 뻥튀기된다!”

이 단 $10$ 퍼센트라는 확률적 불확실성 코드가 인간의 뇌에서 아드레날린 렌더링을 터뜨리고, 수천 번 다시 마우스를 클릭하게 만드는 카지노의 강력한 그물망이 됩니다.

이 단원에서는 파이썬 난수(Random) 모듈을 이용하기 전, 우리 스스로가 어떻게 머릿속으로 모든 평행우주의 시나리오 가지 수(트리 구조) 를 놓치지 않고 꼼꼼하게 파싱(Parsing) 카운트해낼 수 있는지, 그 논리적인 합/곱 가지치기 기술부터 배워보겠습니다. 주사위를 던질 시간입니다!

서브목차