1961년 — 컴퓨터 한 대가 발견한 새로운 수학
1961년, MIT 기상학자 에드워드 로렌즈(Edward Lorenz)는 날씨 시뮬레이션 프로그램을 돌리던 중 이상한 현상을 발견합니다. 같은 시뮬레이션을 두 번 돌렸는데, 결과가 완전히 다르게 나왔습니다. 처음에는 컴퓨터가 고장난 줄 알았던 그는, 곧 두 번째 실행에서 입력한 초기값이 첫 번째와 미세하게 달랐다는 것을 알아챕니다.
차이는 0.506127 vs 0.506 — 단지 소수점 셋째 자리 이후의 반올림이었습니다. 그런데 이 작은 차이가 시뮬레이션을 진행할수록 점점 커져, 결국에는 완전히 다른 날씨 패턴을 만들어냈습니다. 로렌즈는 이 현상을 두고 “브라질에서 나비 한 마리가 날갯짓을 하면 텍사스에서 토네이도가 일어날 수 있다”고 표현했고, 이것이 ‘나비 효과(butterfly effect)’의 시작입니다.
결정론적 카오스란 무엇인가?
결정론적 카오스(Deterministic Chaos)는 수학적으로 두 가지 모순되는 듯한 성질을 동시에 가지는 시스템입니다.
- 결정론적(Deterministic): 시스템의 모든 규칙이 정해져 있고, 같은 초기 조건이면 항상 같은 결과가 나옵니다.
- 카오스적(Chaotic): 초기 조건의 매우 작은 차이가 시간이 지날수록 기하급수적으로 커져, 사실상 결과를 예측하는 것이 불가능합니다.
이 두 성질이 동시에 성립하는 시스템이 자연계와 시뮬레이션 곳곳에 숨어 있습니다. 날씨, 이중진자, 인구 동역학, 그리고 우리가 보는 핀볼이 모두 결정론적 카오스 시스템입니다.
matter.js — 핀볼 룰렛의 심장
핀볼 룰렛은 matter.js라는 2D 물리 엔진을 사용합니다. 이 엔진은 매 프레임(보통 1초에 60번)마다 다음 일을 합니다.
- 각 공의 현재 위치·속도·회전을 계산
- 공과 핀, 공과 공 사이의 충돌을 감지
- 충돌이 일어났다면 충돌 각도와 반발 계수에 따라 새로운 속도를 계산
- 중력·마찰·공기 저항을 적용해 다음 위치를 갱신
이 과정은 100% 결정론적입니다. 즉, 모든 공의 위치를 똑같이 시작한다면 결과도 똑같이 나옵니다. 하지만 우리는 매번 다른 결과를 봅니다. 왜일까?
공이 매번 다르게 떨어지는 진짜 이유
핀볼 룰렛에서는 공의 시작 위치를 매번 약간씩 다르게 무작위화합니다. 또한 두 개 이상의 공이 거의 동시에 떨어지면, 공끼리의 충돌이 새로운 무작위성을 만들어냅니다. 이 작은 시작 위치 차이가 첫 번째 핀과의 충돌 각도를 미세하게 바꾸고, 그 충돌이 두 번째 핀과의 만남을 더 크게 바꾸고, 핀 10개를 지나갈 때쯤에는 두 공의 경로가 완전히 달라집니다.
이것이 정확히 1961년 로렌즈가 본 현상입니다. 작은 초기 조건 차이가 기하급수적으로 증폭되어 사실상 무작위처럼 보이는 결과를 만들어내는, 결정론적 카오스의 모범 사례입니다.
왜 이 방식이 ‘공정한 추첨’으로 인정받을까?
단순한 의사난수 생성기(PRNG)도 무작위 결과를 만들 수 있습니다. 그런데 왜 굳이 물리 시뮬레이션을 거치는 핀볼 룰렛이 더 ‘공정해 보일까요?’ 답은 인간의 인식 방식에 있습니다.
사람은 ‘0.873을 출력했습니다’라는 결과보다, ‘공이 핀에 부딪히고 좌측으로 굴러갔다가 다음 핀에서 우측으로 튕겼다’는 시각적 과정을 본 결과를 훨씬 더 신뢰합니다. 인과 관계가 보이는 결과는 조작이 불가능하다는 직관을 만들어냅니다. 핀볼 룰렛은 결정론적 카오스를 시각화함으로써 이 직관을 활용하는 도구입니다.
수학적으로 보면 핀볼 룰렛의 결과는 시작 시점에 모두 정해져 있습니다. 다만 그 ‘정해진 결과’를 알아내는 것이 불가능할 만큼 시스템이 민감하기에, 우리에게는 무작위로 보일 뿐입니다. 1961년 로렌즈가 우연히 발견한 작은 수학적 진실이, 지금 여러분이 보는 화면 위 공의 궤적 속에 그대로 살아 있습니다.