3장 — 온도

평형: 기울기가 같아지는 곳에서 멈춘다

표를 보면 가장 흔한 분배가 3 : 3이라는 것은 알 수 있지만, 왜 하필 그곳인지는 아직 드러나지 않는다. 덩어리를 하나씩 옮겨 가며 경우의 수가 어떻게 변하는지 살펴보면 그 이유가 보인다.

역사: 다니엘 베르누이와 돈의 쓸모

덩어리를 옮겨 보기 전에, 돈에서 먼저 알려진 비슷한 현상을 보자. 통장 잔고가 적은 사람에게 만 원은 큰 돈이지만 부자에게는 별것 아니다. 이 흔한 경험이 수학의 문제가 된 것은 동전 던지기 내기 하나 때문이었다.

1713년 니콜라우스 베르누이는 편지에 이런 내기를 적었다. 앞면이 나올 때까지 동전을 던지고, 뒷면이 한 번 나올 때마다 상금을 두 배로 올린다. 상금이 2, 4, 8, …로 커지는 동안 그 상금을 받을 확률은 1/2, 1/4, 1/8, …로 줄어서, 각 경우의 「확률 × 상금」은 늘 1이다. 이것을 끝없이 더하면 기대 상금은 무한대가 된다. 기대값대로라면 전 재산을 걸고라도 이 내기에 들어가야 하지만, 실제로는 누구도 큰돈을 내려 하지 않는다. 사촌인 다니엘 베르누이는 1738년 상트페테르부르크 학술원 논문집에 실은 글에서, 사람이 따지는 것은 상금의 액수가 아니라 그 돈이 주는 쓸모이고 "돈의 쓸모는 재산의 로그에 비례한다"고 가정해 이 수수께끼를 풀었다. 로그로 재면 뒤쪽의 큰 상금이 보태는 쓸모가 점점 작아져서 내기의 값이 유한해진다. 이 내기는 논문이 실린 곳의 이름을 따 상트페테르부르크의 역설이라 불린다. 아래에서 보듯, 에너지 덩어리와 경우의 수의 로그 사이에도 이와 같은 관계가 있다.

다니엘 베르누이(1700–1782). 출처: Wikimedia Commons(작자 미상, 1720년 무렵, Bammesk 편집), CC BY-SA 4.0
다니엘 베르누이(1700–1782). 출처: Wikimedia Commons(작자 미상, 1720년 무렵, Bammesk 편집), CC BY-SA 4.0

한 덩어리씩 옮겨 보기

B에서 A로 덩어리 하나를 옮기면 A의 ln W는 늘고 B의 ln W는 줄어든다. 두 변화량 가운데 어느 쪽이 큰지를 비교하면, 그 덩어리를 옮기는 것이 전체 경우의 수를 늘리는지 줄이는지 알 수 있다.

현재 q_A A가 하나 더 받을 때 ln W_A 증가 B가 하나 잃을 때 ln W_B 감소 전체 ln W 변화
0 1.10 0.29 +0.81
1 0.69 0.34 +0.36
2 0.51 0.41 +0.11
3 0.41 0.51 −0.11
4 0.34 0.69 −0.36

표에서 눈에 띄는 것은 덩어리를 적게 가진 계일수록 하나를 더 받았을 때 담는 방법이 크게 늘어난다는 점이다. 이미 많이 가진 계는 하나를 더 받아도 별로 늘지 않는다. 그러므로 덩어리는 "받았을 때 경우의 수가 더 많이 늘어나는 쪽"으로 옮겨 가고, 두 증가량이 같아지는 q_A = 3 근처에서 더 이상 옮겨 갈 이유가 없어진다. 이렇게 덩어리가 오가기는 해도 어느 쪽으로도 더 쏠리지 않는 상태를 평형 (주고받기가 한쪽으로 쏠리지 않는 상태, equilibrium)이라 한다.

적게 가진 쪽이 하나를 더 반긴다. 2만 원에 1만 원을 더하면 ln(재산)이 0.41 늘지만 200만 원에서는 0.005 늘고, 칸 3개인 계도 덩어리 0개일 때와 4개일 때 하나를 더 받으면 ln W가 각각 1.10과 0.34 는다.
적게 가진 쪽이 하나를 더 반긴다. 2만 원에 1만 원을 더하면 ln(재산)이 0.41 늘지만 200만 원에서는 0.005 늘고, 칸 3개인 계도 덩어리 0개일 때와 4개일 때 하나를 더 받으면 ln W가 각각 1.10과 0.34 는다.

큰 계에서는 날카로워진다

이제 계를 키워 보자. A의 칸을 300개, B의 칸을 200개로 늘리고 덩어리 100개를 나눠 갖게 하면 다음과 같은 결과를 얻는다.

값
가장 흔한 q_A 60
q_A의 표준편차 약 5.4
50 ≤ q_A ≤ 70일 확률 약 95%
q_A ≤ 40일 확률 약 0.02%
q_A = 60에서 A의 증가량 / B의 증가량 1.775 / 1.767

여기서 두 가지를 읽어낼 수 있다. 첫째, 분배는 반반이 아니라 60 : 40이고, 이는 칸 수의 비 300 : 200과 같다. 그러니 평형에서 같아지는 것은 에너지 총량이 아니라 표 마지막 줄의 증가량이다. 둘째, 계가 커지자 분배가 거의 하나로 정해졌다. 칸이 3개일 때는 가장 흔한 분배가 21.6%에 불과했지만, 여기서는 60 근처를 벗어난 분배가 거의 일어나지 않는다.

그렇다면 계를 더 키우면 흔들림은 어떤 규칙으로 줄어들까? 칸 수와 덩어리 수를 모두 10배씩 키워 가며 같은 계산을 해 보면 다음과 같다.

칸 A · B, 덩어리 가장 흔한 q_A q_A의 표준편차 표준편차 ÷ 가장 흔한 값
300 · 200, 100 60 5.4 8.9%
3,000 · 2,000, 1,000 600 17.0 2.8%
30,000 · 20,000, 10,000 6,000 53.7 0.89%

표준편차 자체는 커지지만 가장 흔한 값보다 훨씬 느리게 커져서, 흔들림의 상대적인 크기는 계를 10배 키울 때마다 약 √10 ≈ 3.2배씩 줄어든다. 칸이 10²³개쯤인 실제 물체라면 상대적인 흔들림은 10⁻¹¹보다도 작아져서 어떤 측정으로도 볼 수 없다.

연속으로 쓰면

덩어리가 충분히 많으면 "하나를 옮길 때의 변화"를 미분으로 바꿔 쓸 수 있다. 전체 에너지 E = E_A + E_B가 고정되어 있을 때 ln W_A(E_A) + ln W_B(E − E_A)를 E_A로 미분해 0으로 놓으면 다음을 얻는다.

∂ln⁡WA∂EA=∂ln⁡WB∂EB\frac{\partial \ln \textcolor{#d62728}{W_A}}{\partial \textcolor{#ff7f0e}{E_A}} = \frac{\partial \ln \textcolor{#d62728}{W_B}}{\partial \textcolor{#ff7f0e}{E_B}}
WAA에 에너지를 담는 방법의 수EAA가 가진 에너지WBB에 에너지를 담는 방법의 수EBB가 가진 에너지\begin{array}{ll} \textcolor{#d62728}{W_A} & \text{A에 에너지를 담는 방법의 수} \\ \textcolor{#ff7f0e}{E_A} & \text{A가 가진 에너지} \\ \textcolor{#d62728}{W_B} & \text{B에 에너지를 담는 방법의 수} \\ \textcolor{#ff7f0e}{E_B} & \text{B가 가진 에너지} \end{array}
직접 움직여 보기두 계가 덩어리를 나눠 갖기새 창에서 열기 ↗

코드로 확인하기

앞에서 손으로 세어 본 결과를 이번에는 코드로 확인해 보자. 아래 코드는 칸 수와 덩어리 수를 정해 주면 가능한 모든 분배의 확률을 계산하고, 분배가 어디에 모이는지, 그리고 그곳에서 두 계의 증가량(코드의 beta)이 정말 같아지는지를 출력한다. 칸 수와 덩어리 수를 바꿔 가며 돌려 보면 분배가 모이는 자리가 어떻게 달라지는지 직접 볼 수 있다.

from math import comb, log

def W(N, q):                      # 칸 N개에 덩어리 q개를 담는 방법의 수
    return comb(q + N - 1, q)

def beta(N, q):                   # 덩어리 하나를 더 받을 때 ln W 증가량
    return log(W(N, q + 1)) - log(W(N, q))

NA, NB, q = 300, 200, 100
total = sum(W(NA, a) * W(NB, q - a) for a in range(q + 1))
prob = [W(NA, a) * W(NB, q - a) / total for a in range(q + 1)]

best = max(range(q + 1), key=lambda a: prob[a])
print(best)                                   # 60
print(sum(prob[50:71]))                       # 약 0.95
print(beta(NA, best), beta(NB, q - best))     # 약 1.775, 1.767

NA, NB, q를 10배씩 키워 돌리면 앞의 표처럼 분배의 폭이 상대적으로 좁아지는 것을 직접 확인할 수 있다. 다만 이렇게 키우면 이항계수가 매우 커지므로, W를 직접 구하는 대신 ln W를 math.lgamma로 계산하는 것이 좋다.

문제 1. 용돈 10만 원 나누기

돈의 쓸모가 재산의 로그에 비례한다고 하자. 재산이 1만 원인 동생과 5만 원인 형에게 부모님이 용돈 10만 원을 만 원 단위로 나눠 주려 한다. 두 사람의 ln(재산)을 더한 값이 가장 커지게 하려면 동생에게 얼마를 주어야 하는가? 그때 두 사람의 재산은 각각 얼마인가?

김민준 M01
김민준

공평하게 5만 원씩이요. 동생은 6만 원, 형은 10만 원이 되고요.

선생님 T01
선생님

5만 원씩 나눈 자리에서 형 몫의 만 원 한 장을 동생에게 옮기면, 두 사람의 ln(재산)은 각각 얼마나 변하죠?

김민준 M04
김민준

동생은 6만에서 7만이 되니까 ln(7/6) ≈ 0.154 늘고, 형은 10만에서 9만이 되니까 ln(10/9) ≈ 0.105 줄어요. 합이 늘었네요. 반반이 가장 좋은 게 아니었어요.

선생님 T01
선생님

그럼 언제까지 옮기면 될까요?

김민준 M01
김민준

동생 7만 원, 형 3만 원을 주면 둘 다 8만 원이에요. 여기서 한 장 더 옮기면 동생은 ln(9/8) ≈ 0.118 늘고 형은 ln(8/7) ≈ 0.134 줄어서 손해예요. 동생에게 7만 원이네요.

이서연 S09
이서연

똑같이 나눈 건 용돈이 아니라 마지막 만 원의 쓸모였네. 그게 같아지는 자리에서 멈춘 거고.

문제 2. 덩어리 8개는 어떻게 나뉘나

칸이 3개씩인 계 A, B가 에너지 덩어리 8개를 나눠 갖는다. A가 덩어리를 하나도 갖지 않을 확률과 4개를 가질 확률을 구하라. (풀어 본 뒤 위젯 1의 「문제 2 불러오기」로 가장 흔한 분배를 확인해 보자.)

김민준 M01
김민준

q_A가 0부터 8까지 9가지니까 둘 다 1/9 아니에요?

선생님 T14
선생님

q_A = 0이 되는 담는 방법은 모두 몇 가지이고, q_A = 4가 되는 담는 방법은 몇 가지죠? 칸마다 덩어리가 몇 개인지까지 다 적은 배치를 하나하나 센다고 생각해 보세요.

김민준 M04
김민준

A는 담는 방법이 1가지, B는 칸 3개에 8개를 담으니까 C(10, 8) = 45가지. 전체가 칸 6개에 8개를 담는 C(13, 8) = 1287가지니까 45/1287 ≈ 0.035. q_A = 4이면 15 × 15 = 225, 225/1287 ≈ 0.175이네요. 9가지 결과마다 들어 있는 배치 수가 다르니까 확률도 다르고요.

선생님 T01
선생님

맞아요. 같은 확률을 주는 건 미시상태예요, 거시상태가 아니라. 칸마다 덩어리가 몇 개인지까지 다 적은 배치 하나하나가 미시상태이고, q_A처럼 묶어서 본 요약값이 거시상태예요.

이서연 S12
이서연

민준아, 그거 주사위 두 개 합이랑 같은 실수다. 합이 2인 것과 7인 것이 같은 확률이 아니잖아. 그런데 선생님, 그럼 에너지는 두 계가 똑같이 나눠 갖는 게 법칙이네요. 4 : 4가 가장 많고, 아까 용돈도 결국 8만 원씩 똑같아졌으니까요.

선생님 T14
선생님

가장 흔한 건 맞지만 17.5%예요. 나머지 82%는 다른 분배예요. 법칙이라고 부르려면 거의 항상 그렇게 돼야 하죠. 칸을 300개, 200개로 늘리고 덩어리 100개를 나누면 분배가 50~70 사이에 95% 모여요. 계가 커야 확률이 법칙처럼 보여요.

이서연 S06
이서연

그런데 그때 가장 흔한 건 60 : 40이잖아요. 똑같이 나누는 것도 아니네요.

선생님 T01
선생님

칸 수가 300 : 200이라서예요. 에너지 총량이 아니라, 덩어리 하나를 더 받을 때 ln W가 늘어나는 양이 같아지는 거예요. 양쪽 원자가 같은 종류라 칸당 덩어리가 같아진 겁니다.

이서연 S10
이서연

그럼 용돈 문제에서 재산이 똑같아진 것도 ln(재산)의 기울기가 1/재산이라 재산에만 달려 있어서였네요. 덩어리는 칸 수가 다르면 총량이 아니라 칸당 덩어리가 같아지는 거고요. 같아지는 건 늘 하나 더의 값이에요.