← 목록으로
취미를 파면 수학이 나온다 · 마작

조합론? 확률론? 그냥 론!

Combinatorics? Probability? Just call RON.

마작에서 화료를 선언하는 그 외침 — "론(ron)!". 그런데 마작을 깊이 파면, 그 한 판이 통째로 조합론·확률론 위에 서 있다는 걸 알게 됩니다. 손패가 몇 가지인지 세는 일(조합), 벽 너머의 패를 읽는 일 (확률), 텐파이까지 몇 걸음인지 재는 일(알고리즘), 그리고 사람을 넘어선 AI까지. 실제 마작패로 직접 만지면서, 마작 속에 숨은 "온갖 론"을 꺼내 봅시다.

1패와 손패 — 무엇을 세는가

일본 마작(리치) 기준으로 패는 34종 × 4장 = 136장입니다. 수패 세 종류(만수 m·통수 p·삭수 s) 각 1~9, 그리고 글자패 7종(동·남·서·북·백·발·중)이죠. 손에 13장을 들고, 한 장을 가져와 14장으로 화료형을 만들면 이깁니다. 화료형은 거의 항상

화료형
멘쯔(면자) 4개 + 또이쯔(머리, 한 쌍)  =  4×3 + 2 = 14장. 멘쯔는 커쯔(같은 패 3장) 또는 슌쯔(연속 3장, 같은 수패), 또이쯔는 같은 패 2장.

아래가 34종 전부입니다(타일은 직접 그렸어요). 이 작은 그림들을 어떻게 4멘쯔+1또이쯔로 묶을 수 있느냐 — 그게 이 글 내내 따라다니는 질문이에요.

마작패 34종

수패 만(m)·통(p)·삭(s) 각 1~9, 글자패 동남서북·백발중. 각 4장씩, 모두 136장.

2조합론 — 청일색이 말해주는 손패의 수

그럼 손패는 도대체 몇 가지나 될까요? 13장을 뽑는 경우의 수만 해도 \(\binom{136}{13}\approx 5.9\times10^{17}\), 약 59비트입니다. 더 흥미로운 건 "그중 화료형은 몇 개냐"인데, 여기엔 "같은 패는 최대 4장"이라는 제약이 걸려 단순 이항계수로 안 풀려요 — 생성함수와 점화식(조합론 형!)으로 세야 합니다.

이 셈이 가장 깨끗하게 드러나는 무대가 바로 청일색(清一色) — 한 가지 수트로만 이뤄진 손패입니다. 수트가 하나뿐이라 9종(1~9)만 다루면 되거든요. 알려진 결과로, 한 수트 14장으로 만들 수 있는 손패 중 화료형은 정확히 13,259가지입니다. 청일색은 그래서 "마작 조합론의 실험실"이에요.

청일색의 또 다른 얼굴 — 다면대기
청일색은 다면대기(여러 패로 동시에 화료)가 폭발하는 곳이기도 합니다. 텐파이 모양을 분류하면 7장꼴이 19가지, 10장꼴이 69가지로 깔끔히 떨어지고, "이 청일색은 무슨 패를 기다리나?"를 맞히는 건 그 자체로 유명한 퍼즐 장르(何待ち)예요. 그 극한이 5장에서 다룰 구련보등입니다.

3샨텐과 우케이레 — 텐파이까지 몇 걸음

실전에서 가장 먼저 따지는 수치가 샨텐(향청) 수입니다 — "텐파이까지 몇 장을 갈아야 하나". 텐파이는 0샨텐, 화료는 −1이죠. 그리고 우케이레(받아들임)는 "지금 어떤 패를 가져오면 샨텐이 줄어드나, 그게 몇 종 몇 장이나 되나"입니다. 이 둘을 빠르게 계산하는 게 패효율의 핵심이고, 본질은 손패를 멘쯔·부분멘쯔로 쪼개는 탐색/동적계획 문제예요.

아래 계산기는 진짜로 샨텐·우케이레를 계산합니다(표준형·치또이쯔·국사무쌍 모두 고려). 손에서 패를 빼고, 아래 패함에서 더하며 직접 만져 보세요.

샨텐 · 우케이레 계산기

내 손패 (클릭하면 버림)
패함 (클릭하면 가져옴 · 초록=우케이레)
샨텐이 0이면 텐파이 — 초록으로 빛나는 패가 곧 기다리는 패(우케이레)입니다. 손에서 한 장 빼 보면 샨텐이 늘고 우케이레가 확 바뀌는 걸 볼 수 있어요.
그럼 가장 나쁜 손패는 몇 샨텐? — 답은 6
반대로 최악의 손패는 텐파이까지 얼마나 멀까요? 표준형(4멘쯔+1또이쯔)만 따지면, 13장이 전부 뿔뿔이 흩어진 고립패가 8샨텐까지 갑니다. 그런데 치또이쯔(7쌍)가 늘 구해 줘요 — 치또이쯔 샨텐은 \(6-p+\max(0,\,7-k)\)(\(p\)=쌍 수, \(k\)=종류 수)라 어떤 손패에서도 6을 넘지 못합니다(쌍이 없으면 13장이 전부 다른 종류라 \(k=13\)이라서 정확히 6, 쌍이 생기면 오히려 작아짐). 그래서 전체 샨텐의 최댓값은 6. 예컨대 (2·5·8 통·만 + 글자패 7종, 전부 다른 13장)이 딱 6샨텐입니다 — 위 계산기에 그대로 넣어 보세요(표준형 8, 치또이쯔 6, 국사무쌍 6 중 최솟값).

4확률론 — 벽 너머를 읽다

우케이레가 \(k\)종·여러 장이라 해도, 그게 제때 들어올지는 확률 문제입니다. 2004년 とつげき東北의 『과학하는 마작』이 바로 이 지점을 뒤집었어요 — "흐름"이나 "운" 같은 모호한 말을 걷어내고, 모든 판단을 확률·기댓값으로 환원해 버린 거죠. 이후 마작 전략은 천봉(天鳳) 같은 사이트의 대량 기보 통계와 떼어놓을 수 없게 됐습니다.

가장 기본은 이것 — 보이지 않는 패 \(R\)장 중 유효패가 \(k\)장 있을 때, 앞으로 \(t\)번 쯔모(자기 차례에 한 장씩 가져오기) 안에 적어도 한 장 잡을 확률은 (초기하분포)

$$ P = 1 - \frac{\binom{R-k}{t}}{\binom{R}{t}} = 1-\prod_{j=0}^{t-1}\frac{R-k-j}{R-j}. $$

유효패를 t순 안에 잡을 확률

유효패 k = 8 남은 순(턴) t = 9 안 보이는 패 R = 70
곡선은 순(턴)이 갈수록 누적 확률이 오르는 모습. 유효패가 많을수록(우케이레 ↑) 가파르게 오릅니다 — "넓게 받는" 손이 유리한 이유를 수치로 보는 거죠.

5다면대기의 극한 — 구련보등

청일색(2장)의 다면대기를 끝까지 밀면 전설의 역만 구련보등(九蓮宝燈)이 나옵니다. 한 수트로 1·1·1·2·3·4·5·6·7·8·9·9·9를 모으면 — 같은 수트의 1부터 9까지 어떤 패로도 화료합니다. 즉 9면 대기! 이것이 텐파이 한 손이 기다릴 수 있는 패 종류의 이론적 최댓값이고, 이 9면을 온전히 갖춘 모양을 특히 순정 구련보등(純正九蓮宝燈)이라 부릅니다. (8면 대기로 떨어지는 수는 16가지나 됨이 알려져 있어요.)

순정 구련보등 — 9면 대기

이 패들 중 무엇이 와도 화료 (계산기로 직접 확인)
아래 줄에 초록으로 빛나는 게 화료패입니다 — 1통부터 9통까지 아홉 종 전부. 위 손패가 가진 \(1112345678999\) 구조 덕분이죠.

6도라는 최대 몇 개? — 또 하나의 조합 문제

마작엔 보너스 패 도라가 있습니다. 표시패(도라 인디케이터)의 "다음 패"가 도라가 되고, 손에 그 패가 있으면 장수만큼 점수에 더해지죠. 그럼 한 번 이길 때 도라가 최대 몇 개까지 붙을 수 있을까요? 이것도 알고 보면 깔끔한 조합 문제예요.

표시패는 보통 1장이지만, 깡(칸)을 할 때마다 새 표시패가 한 장씩 더 열립니다(깡도라). 게다가 리치로 화료하면 각 표시패의 뒷면(우라도라)까지 봅니다. 한 판에 깡은 최대 4번이니:

한편 손패는 4깡 + 머리 = \(4\times4+2=18\)장. 표시패가 같은 종류로 겹치면 도라도 중복으로 쌓입니다. 도라 개수를 세는 방법은 두 가지로 볼 수 있는데 — "손패 한 장마다, 그 패를 가리키는 표시패가 몇 장?"의 총합이자, 뒤집으면 "표시패 한 장마다, 그 표시패가 가리키는 종류를 손에 몇 장 가졌나?"의 총합입니다. 그런데 한 종류는 손에 많아야 4장. 그러니

도라 개수의 상한
\[ (\text{도라 수})=\sum_{\text{표시패 10장}}(\text{그 종류를 손에 가진 장수}) \;\le\; 10\times 4 = 40. \]

그리고 이 40은 실제로 달성됩니다 — 죽은 패(왕패)가 알맞게 배치돼, 표시패 10장이 전부 "손에 4장씩 들고 있는 종류"를 가리키면 되죠. 여기에 적도라(붉은 5)를 쓰는 룰이면 가진 만큼 더 붙어 41·42…로 올라갑니다. 마작 점수의 천장을 떠받치는 게 결국 "표시패 10장 × 한 종류 4장 = 40"이라는, 어이없을 만큼 단순한 곱셈이라는 거죠. (현실의 한 판에서 도라가 이만큼 나오는 일은 사실상 없지만 — "이론상 한계"를 묻는 건 늘 즐겁습니다.)


7AI — 불완전정보의 최전선

체스·바둑이 완전정보 게임이라면, 마작은 불완전정보(상대 손패·남은 벽이 가려져 있음)에 4인, 게다가 분산이 크고 점수 규칙이 복잡해 — AI에게는 포커보다도 까다로운 무대입니다. 그런데 2020년 마이크로소프트의 Suphx가 벽을 넘었어요.

그 결과 Suphx는 천봉에서 10단·상위 99.99%에 올라, 대부분의 톱 인간을 처음으로 넘어선 마작 프로그램이 됐습니다. 지금은 오픈소스 Mortal, NAGA 같은 강력한 리치 AI가 실전 검토 도구로 쓰이고, 포커에서 온 CFR(반사실적 후회 최소화)를 마작에 적용한 연구도 이어지고 있어요.


8곁다리 — 마작 솔리테어는 NP-완전

지금까지가 4인 마작이었다면, 혼자 타일을 짝지어 없애는 마작 솔리테어(상하이)는 전혀 다른 게임이지만 — 여기서도 수학이 한마디 합니다. 규칙은 단순해요: "자유로운(좌우 중 한쪽이 트여 있고 위에 덮인 패가 없는) 같은 패 둘"을 짝지어 없애고, 이걸 되풀이해 전부 치우면 성공입니다. 함정은 — 똑같은 패가 둘 보여도 둘 다 자유로울 때만 없앨 수 있다는 것. 그래서 없애는 순서를 잘못 잡으면, 짝은 남았는데 서로 막혀 더는 못 치우는 막힘(stuck)에 빠집니다. "어느 짝부터 풀어야 끝까지 다 치울 수 있나"를 가려내는 게 바로 아래의 어려운 문제예요.

— 어떤 순서로 없애느냐가 성패를 가른다
복잡도 결과
모든 패의 위치를 다 알고 있어도(peeking) "전부 없앨 수 있는가" 판정은 NP-완전입니다(de Bondt, 2012). 패가 가려진 상태에서 클리어 확률을 최대화하는 최적 플레이는 한술 더 떠 PSPACE-완전이고, 그 확률을 근사하는 것조차 어렵죠. 똑같이 "마작"이라 불려도, 푸는 데 드는 계산의 결은 이렇게 다릅니다 (계산 복잡도 이야기와 만나는 지점).

9맺으며 — 그냥, 론!

손패를 세면 조합론, 벽 너머를 읽으면 확률론, 텐파이까지를 재면 알고리즘, 솔리테어를 풀면 복잡도 이론, 사람을 넘으면 강화학습. 마작 한 판은 이렇게 온갖 "−론"으로 가득 차 있습니다. 그러니 다음에 "론!" 하고 패를 쓰러뜨릴 때, 그건 화료 선언인 동시에 — 조합론·확률론을 한꺼번에 부르는 외침인 셈이죠. 조합론? 확률론? 그냥, 론!


참고 자료