jacobhan.me
수학 노트

0의 계승은 왜 1인가

5의 계승은 120이고, 3의 계승은 6이다. 그렇다면 0의 계승은 — 곱할 것이 하나도 없으니 — 0이어야 하지 않을까? 답은 1이다. 그리고 이 1은 누군가 편의로 정한 규칙이 아니라, 서로 다른 네 갈래의 길이 모두 가리키는 같은 도착점이다.


계승(factorial)은 어떤 자연수부터 1까지의 모든 정수를 차례로 곱한 값이다. 5의 계승은 5 × 4 × 3 × 2 × 1 = 120이고, 3의 계승은 6이다. 곱하는 수가 하나씩 줄어들수록 결과도 작아진다. 이 흐름을 그대로 따라가면 0의 계승은 0일 것 같지만, 수학이 약속한 값은 0! = 1이다.

처음 보면 억지처럼 느껴진다. 아무것도 곱하지 않았는데 어떻게 1이 나오는가. 그러나 이것은 임의로 정해 놓은 규칙이 아니다. 패턴을 거꾸로 따라 내려가도, 경우의 수를 직접 세어도, 곱셈이라는 연산의 구조를 들여다보아도, 심지어 계승을 정수 너머로 확장한 함수를 그려 보아도 — 출발점이 전혀 다른 네 갈래의 길이 결국 한 점, 0! = 1로 모인다. 이 글은 그 네 갈래를 차례로 따라가며 왜 이 값이 우연이 아니라 필연인지를 보인다.

1.계승이라는 약속

계승은 1808년 프랑스 수학자 크람프(Christian Kramp)가 느낌표 기호 ‘!’로 처음 표기한 연산이다. ‘계승(factorial)’이라는 이름은 그가 동료 수학자 아르보가스트(Antoine Arbogast)의 제안을 받아들여 붙인 것으로, 크람프 자신은 본래 ‘능력(faculty)’이라는 말을 썼다. 표기 자체는 단순하지만, 이 연산은 순열과 조합, 확률, 그리고 무한급수에 이르기까지 수학 곳곳에서 등장한다.

자연수 n에 대해 계승은 다음과 같이 정의된다.

n! = n × (n−1) × (n−2) ×× 3 × 2 × 1

예를 들어 5! = 5 × 4 × 3 × 2 × 1 = 120이고, 3! = 3 × 2 × 1 = 6이며, 1! = 1이다. 정의를 그대로 적용하면 자연수에 대한 계승은 막힘없이 계산된다. 문제는 그 아래, 곱할 것이 사라지는 0에서 시작된다.

2.첫 번째 길 — 패턴을 거꾸로 내려가기

계승에는 눈에 띄는 규칙이 하나 있다. 어떤 계승은 바로 위 단계의 계승을 그 수로 나눈 값과 같다는 것이다. 예컨대 4!은 5!을 5로 나눈 값이다. 5! = 5 × 4!이므로 양변을 5로 나누면 4!만 남기 때문이다. 일반적으로 다음이 성립한다.

(n−1)! = n!n

이 규칙을 위에서부터 한 칸씩 적용하며 내려가 보자. 120에서 출발해 5로 나누고, 다음에는 4로, 그다음에는 3으로 나누는 식이다.

5! = 120 4! = 24 3! = 6 2! = 2 1! = 1 0! = 1 ÷ 5 ÷ 4 ÷ 3 ÷ 2 ÷ 1 한 칸 더 내려가면 1 ÷ 0, 즉 0으로 나누는 셈이 되어 −1! 은 정의되지 않는다.
계승은 한 단계 위의 값을 해당 정수로 나누면 한 단계 아래의 값이 된다. 이 나눗셈을 따라 내려가면 1! 다음의 0!에 1이 자연스럽게 놓이고, 그 아래에서 패턴이 끊긴다.

여기서 자연스러운 의문이 생긴다. 패턴이 반드시 끝까지 완성되어야 할 이유가 있는가? 한 칸 더 내려가 −1!을 구해 보면 그 답이 나온다. 규칙대로라면 −1! = 0! ÷ 0 = 1 ÷ 0인데, 0으로 나누는 일은 정의되지 않는다. 패턴은 0!에서 1을 가리키고는 그 바로 아래에서 깨끗하게 끊긴다. 이 끊김 자체가 0이 자연스러운 끝점이며, 그 끝점의 값이 1임을 시사한다.

다만 패턴은 강력한 정황 증거일 뿐, 그 자체로 증명은 아니다. 패턴이 꼭 이어져야 한다고 누가 정한 것은 아니기 때문이다. 그래서 출발점이 전혀 다른 두 번째 길을 따라가 본다.

3.두 번째 길 — 아무것도 배열하는 방법은 몇 가지인가

계승의 또 다른 얼굴은 경우의 수다. 서로 다른 n개를 한 줄로 늘어놓는 방법의 가짓수가 바로 n!이다. 세 개를 배열하는 방법은 여섯 가지, 두 개는 두 가지, 한 개는 한 가지다.

객체 3개 → 배열 6가지 ABC ACB BAC BCA CAB CBA 객체 2개 → 배열 2가지 AB BA 객체 1개 → 배열 1가지 A 객체 0개 → 배열 1가지 — 아무것도 늘어놓지 않은 단 하나의 상태
서로 다른 n개를 한 줄로 늘어놓는 방법의 수가 n!이다. 객체가 하나도 없을 때에도 ‘아무것도 늘어놓지 않은’ 텅 빈 배열이 정확히 하나 존재한다.

그렇다면 0개를 배열하는 방법은 몇 가지일까? 늘어놓을 것이 없으니 0가지라고 답하기 쉽다. 그러나 ‘아무것도 늘어놓지 않은 상태’가 정확히 하나 존재한다. 배열이 사라진 것이 아니라, 텅 빈 배열이 하나 있는 것이다. 그래서 0개를 배열하는 방법은 1가지이고, 0! = 1이 된다.

비유

사람을 한 줄로 세우는 경우의 수를 떠올려 보자. 세 사람이면 여섯 가지 줄, 두 사람이면 두 가지 줄을 만들 수 있다. 그런데 세울 사람이 아무도 없다면? ‘아무도 서 있지 않은 줄’ 하나가 남는다. 줄이라는 개념이 사라진 것이 아니라, 비어 있는 줄이 정확히 하나 있는 것이다.

집합론의 언어로 옮기면 한층 분명해진다. n개의 원소를 순서대로 늘어놓는 일은 원소를 자리에 대응시키는 함수와 같은데, 공집합에서 공집합으로 가는 함수는 정확히 하나 — 아무것도 대응시키지 않는 빈 함수 — 뿐이다. 그래서 0개의 배열은 하나이며, 다시 0! = 1이다.

4.세 번째 길 — 빈 곱, 가장 근본적인 이유

앞의 두 길은 0! = 1을 설득력 있게 보여 주지만, 정작 가장 깊은 곳에 있는 이유는 따로 있다. 계승의 정의를 다시 읽어 보면, 그것은 ‘0을 곱하는 일’이 아니라 ‘1부터 n까지의 수를 곱하는 일’이다. 그렇다면 0!은 곱할 수가 하나도 없는 곱이 된다. 이것을 빈 곱(empty product)이라 부른다.

빈 곱에는 분명한 약속이 있다. 아무 수도 곱하지 않으면 그 결과는 곱셈의 항등원인 1이다. 이는 아무 수도 더하지 않으면 그 결과가 덧셈의 항등원인 0이 되는 것 — 빈 합(empty sum) — 과 정확히 대칭을 이룬다.

빈 합 (아무것도 더하지 않음)
= 0
덧셈의 항등원
빈 곱 (아무것도 곱하지 않음)
= 1
곱셈의 항등원

왜 하필 1인가? 항등원이기 때문이다. 어떤 곱에 빈 곱을 곱해도 값이 달라지지 않아야 한다. 즉 a × (빈 곱) = a가 성립하려면 빈 곱은 1일 수밖에 없다. 만약 빈 곱을 0으로 둔다면 무엇에 곱하든 결과가 0이 되어 버려, ‘아무것도 곱하지 않았다’는 본래의 뜻과 어긋난다.

비유

계산기로 여러 수를 차례로 곱한다고 하자. 누적값은 1에서 출발해야 한다. 1 × 5 × 4처럼 1에서 시작해 곱해 나가면 원하는 곱이 나오지만, 출발값이 0이었다면 무엇을 곱하든 0에 머문다.

곱셈에서 ‘아직 아무것도 곱하지 않은 출발점’은 0이 아니라 1이다. 덧셈의 출발점이 0인 것과 같은 이치다.

여기까지 오면 그림이 분명해진다. 빈 곱이 1이라는 약속이 가장 근본에 있고, 앞서 본 패턴과 경우의 수는 그 약속이 드리우는 두 개의 그림자다. 0! = 1은 계승만의 특수한 사정이 아니라, 곱셈이라는 연산이 본래 지닌 성질의 자연스러운 귀결이다.

5.왜 하필 1이어야 하나 — 무너지지 않으려면

0! = 1이 단순한 편의가 아니라는 가장 확실한 증거는, 이 값이 아니면 무너지는 공식이 한둘이 아니라는 데 있다. 서로 다른 영역에서 등장하는 핵심 공식들이 하나같이 0! = 1일 때에만 모순 없이 맞아떨어진다.

재귀식

계승의 정의 n! = n × (n−1)!에 n = 1을 넣으면 1! = 1 × 0!이 된다. 1! = 1이므로, 식이 성립하려면 0! = 1이어야 한다.

1! = 1 × 0! 0! = 1
이항계수 (조합)

n개 중 0개를 고르는 방법은 ‘아무것도 고르지 않기’ 한 가지다. 조합 공식이 이 1을 내놓으려면 0! = 1이 필요하다.

C(n, 0) = n!0! · n! = 10!
지수함수의 급수

지수함수는 1 + x + x²/2! + x³/3! + ⋯로 전개된다. 일반항 xⁿ/n!에서 첫 항(n = 0)이 1이 되어야 익숙한 상수항과 맞는다.

ex = Σn=0 xnn!
확률 분포

포아송 분포에서 사건이 0번 일어날 확률은 아래와 같다. 0! = 1이라야 이 값이 e−λ로 정리되어 올바른 확률이 된다.

P(X=0) = λ0 e−λ0! = e−λ

이 공식들은 각기 다른 분야에서 독립적으로 등장하지만, 모두 0! = 1이라는 같은 값을 요구한다. 어느 하나를 위해 0!을 다르게 정했다면 나머지가 어긋났을 것이다. 그러나 0! = 1로 두는 순간 전부가 동시에 맞아떨어진다.

0! = 1은 임의로 고른 약속이 아니라, 수학의 전체 구조가 모순 없이 맞물리도록 강제된 단 하나의 값이다.

6.정수를 넘어서 — 1.5의 계승은?

계승의 값들을 좌표평면에 점으로 찍어 보면, 그 점들이 하나의 매끄러운 곡선 위에 놓일 것처럼 보인다. 그렇다면 점과 점 사이 — 이를테면 1.5! — 에도 값이 있을까?

y = x! (계승을 잇는 곡선) x 1 2 6 0 1 2 3 최솟값 ≈ 0.886 1! = 1 2! = 2 3! = 6 0! = 1
정수에서의 계승 값을 잇는 매끄러운 곡선. 0과 1 사이에서 곡선은 1보다 살짝 아래(최솟값 약 0.886)로 내려갔다가 다시 올라오며, x가 커지면 4! = 24, 5! = 120으로 가파르게 치솟는다.

이 물음은 18세기 수학자들을 사로잡았다. 1720년대에 베르누이(Daniel Bernoulli)와 골드바흐(Christian Goldbach)가 ‘계승을 정수가 아닌 값으로 확장할 수 있는가’를 묻기 시작했고, 1729년부터 1730년 사이에 오일러(Leonhard Euler)가 그 답을 내놓았다. 오늘날 감마 함수(gamma function)라 불리는 것이다.

감마 함수는 적분으로 정의된다.

Γ(x) =0 t x−1 e−t dt

이 함수는 정수에서 계승과 정확히 일치하면서도, 그 사이의 모든 실수에 대해 매끄러운 값을 내놓는다. 다만 주의할 점이 하나 있다. 감마 함수는 계승과 한 칸 어긋나 있어, 정수 n에 대해 Γ(n) = (n−1)!이 된다.

주의

이 한 칸의 어긋남은 르장드르(Adrien-Marie Legendre)가 정한 표기 관행에서 비롯됐다. 가우스(Carl Friedrich Gauss)는 Π(n) = n!로 깔끔하게 맞춘 기호를 썼지만, 오늘날 보편적으로 쓰이는 것은 르장드르의 Γ다. 그래서 Γ(1) = 0! = 1, Γ(2) = 1! = 1, Γ(3) = 2! = 2가 된다.

이 정의에 따르면 그토록 궁금했던 중간값도 구할 수 있다. 예컨대 0.5의 계승은 다음과 같다.

(½)! = Γ(3/2) = √π2 0.886

흥미롭게도, 정수의 곱에서 출발한 계승을 확장하자 원주율 π가 모습을 드러낸다.

그리고 0! = 1은 이 곡선이 정확히 들어맞는다는 사실과도 일치한다. 곡선은 계승의 모든 정수 값을 지나며, 0!에 해당하는 자리에서도 어김없이 1을 지난다. 0! = 1은 별개의 약속이 아니라 같은 구조의 한 부분이다.

이 확장이 단지 호기심의 산물만은 아니다. 1.5개의 물건을 늘어놓을 수는 없지만, 감마 함수는 이산적인 ‘배열의 수’를 넘어 연속적으로 변하는 세계를 다루는 데 쓰인다. 연속 시간에서의 대기와 도착을 다루는 확률 분포, 미분방정식, 복소해석 등 여러 분야의 공식 안에 감마 함수가 들어 있다.

네 갈래가 한 점에서 만난다

패턴을 거꾸로 내려가는 길, 아무것도 배열하는 경우를 세는 길, 빈 곱이라는 곱셈의 출발점을 짚는 길, 그리고 계승을 정수 너머로 확장하는 길 — 이 네 갈래는 출발점도 방법도 전혀 다르다. 그럼에도 모두 같은 한 점, 0! = 1로 모인다.

이것이 핵심이다. 만약 0! = 1이 누군가의 자의적 결정이었다면 네 길이 한곳에서 만날 이유가 없다. 수학의 약속은 흔히 이런 모습을 띤다. 멋대로 정한 규칙이 아니라, 전체가 모순 없이 맞물리도록 강제된 필연인 것이다. 0! = 1은 그 점을 가장 또렷하게 보여 주는 예다.