병력이 두 배면 왜 네 배 강할까: 나눠 싸우면 지는 이유
병력이 두 배면 두 배 강할 거라고 생각하기 쉽습니다. 그런데 서로 겨누어 쏘는 싸움에서는 병력을 두 배로 늘리면 네 배 강해집니다. 병사가 많을수록 상대를 더 빨리 줄이고, 그만큼 내 쪽 손실도 더 빨리 줄기 때문입니다. 그래서 힘을 둘로 나눠 한쪽씩 차례로 보내면, 합치면 이길 군대도 질 수 있습니다. 이것은 추상적인 파랑과 빨강 두 군대로 보는 수학 모델이며, 어떤 실제 전투나 전쟁을 말하는 것이 아닙니다.
모델은 이렇게 움직입니다
- 파랑과 빨강 두 군대의 점들이 서로 병력을 깎아 먹습니다. 한 걸음(단계)마다 병사 한 명이 상대 한 명을 쓰러뜨릴 확률이 그 군대의 질입니다. 훈련이나 무기가 좋은 정도, 곧 병사 한 명의 솜씨라고 보면 됩니다.
- 제곱 법칙(겨누어 쏘기)에서는 병력 전체가 상대 아무에게나 쏩니다. 병사가 많을수록 상대를 더 빨리 줄여, 전투력이 질 × 병력²로 커집니다. 선형 법칙(일대일 맞붙기)에서는 서로 마주한 쌍끼리만 싸우므로 전투력이 질 × 병력일 뿐입니다.
- 나뉘어 싸우기를 고르면 한쪽 군대가 반씩 둘로 나뉘어 도착합니다. 두 번째 반은 첫 반이 모두 쓰러진 뒤에야 전선에 들어옵니다. 그 사이 상대는 줄어든 채로 계속 싸웁니다.
- 아래 예시 장면 버튼으로 병력 2배, 나뉘면 지는 경우, 선형 법칙, 질과 병력의 맞바꿈을 바로 볼 수 있습니다.
직접 돌려보기
① 두 군대의 싸움
파랑(왼쪽)과 빨강(오른쪽) 점이 서로 겨눕니다. 가는 선은 이번 단계의 사격이고 회색 점은 쓰러진 병사입니다. 연한 점은 아직 도착하지 않은 뒤쪽 무리입니다. 위쪽에 남은 병력이 실시간으로 보입니다.
② 남은 병력의 변화
굵은 선은 이번 싸움, 점선은 우연을 평균낸 기대 곡선입니다(모여서 싸울 때). 제곱 법칙에서는 처음엔 천천히, 힘이 센 쪽이 앞서기 시작하면 갈수록 빠르게 한쪽이 무너집니다.
③ 전투력 = 질 × 병력²
지금 전선에서 싸우는 병력의 전투력입니다(처음 더 센 쪽을 100%로). 제곱 법칙에서는 두 선의 차이 α·A² − β·B²가 싸우는 내내 거의 일정해서, 두 선이 나란히 내려갑니다. 나뉘어 도착하면 두 번째 반이 들어올 때 선이 뛰어오릅니다.
④ 모이면 이기고 나뉘면 지는가
지금 병력과 질로 다섯 가지 경우를 이론값으로 비교합니다. 막대는 이긴 쪽에 처음 병력의 몇 %가 남는지입니다. 제곱 법칙에서는 큰 쪽이 나뉘면 크게 손해를 보지만, 선형 법칙에서는 나뉘어도 결과가 같습니다.
⑤ 누가 이기나: 병력 비율 × 질 비율
가로는 병력 비율, 세로는 질 비율입니다. 파랑이 이기는 곳은 파란색, 빨강이 이기는 곳은 빨간색이고 진할수록 이긴 쪽에 많이 남습니다. 실선이 제곱 법칙에서 비기는 선(질 × 병력²이 같은 곳), 점선이 선형 법칙에서 비기는 선입니다. 병력이 2배면 질이 4분의 1이어야 균형이 됩니다.
이 결과가 말하는 것, 말하지 않는 것
말하는 것:
- 모두가 서로 겨누어 쏘면 병력 2배가 힘 4배가 되고, 일대일로 맞붙으면 2배는 2배일 뿐이에요. 200 대 100에서 겨누어 쏘면 처음의 약 86%가 남았고, 일대일이면 약 50%였어요.
- 모두가 쏘는 싸움은 많을수록 상대가 빨리 줄고 내가 덜 맞아서 이득이 눈덩이처럼 커져요. 일대일은 한 번에 한 명씩만 상대하니 수가 힘으로 곱해지지 않아요.
- 130 대 100에서 130이 모여 싸우면 평균 64%가 남았지만, 반씩 나뉘어 차례로 오면 300번 중 84%에서 100 쪽이 이겼어요.
- 그렇다면 전력을 볼 땐 머릿수와 함께 싸움 방식과 모였는지를 보면 돼요. 겨누어 쏘는 싸움에선 병력 2배를 솜씨 4배로 맞서야 팽팽했고(300번 중 53:47), 일대일이면 2배로 충분했어요.
상세 설명
말하는 것: 파랑 200명 대 빨강 100명, 질이 같을 때 제곱 법칙의 이론값은 파랑 승, 처음 병력의 87%(약 173명)가 남는 것이었고, 시뮬레이션 300회 평균은 약 172명(86%)이며 모두 파랑이 이겼습니다. 같은 조건을 선형 법칙으로 돌리면 이론도 시뮬레이션도 약 100명(50%)이 남았습니다. 그래서 병력이 2배일 때 전투력은 제곱 법칙에서 4배, 선형 법칙에서 2배입니다. 질이 같고 130 대 100일 때 파랑이 모여 싸우면 평균 82명(64%)이 남았지만, 파랑이 반씩 나뉘어 차례로 도착하면 300회 중 84%에서 빨강이 이겼고 이긴 빨강에 약 40명이 남았습니다. 선형 법칙에서는 나뉘어도 파랑이 약 30명을 남기고 이겨 결과가 같았습니다. 병력 2배를 질로 맞서려면 제곱 법칙에서는 상대 질이 4배여야 하고(선형은 2배), 이때 300회 중 파랑 53%, 빨강 47%로 팽팽했습니다.
말하지 않는 것:
- 실제 전투를 재현하거나 승패를 예측한 것이 아니고, 파랑과 빨강은 어떤 실제 집단도 가리키지 않아요.
- 지형·사기·보급·전술이 빠져 있어요. 역사 사례에 이 법칙이 얼마나 맞는지는 자료를 따로 대조해야 하고 역사가들 사이에서도 논쟁이 있어요.
상세 설명
말하지 않는 것: 실제 전투를 재현하거나 예측한 것이 아닙니다. 이 모델은 지형, 사기, 보급, 지휘, 전술, 무기의 종류, 병사 한 명 한 명의 차이를 모두 빼고 병력 수와 병사의 명중률만 남긴 이 프로젝트의 단순화된 수학 모델입니다. 파랑과 빨강은 어떤 실제 나라나 집단도 가리키지 않습니다. 이 법칙은 해전 등 역사 사례를 설명하는 데 흔히 인용되지만 역사가들은 그 해석을 단순화로 보며 논쟁합니다. 이 모델이 말하는 것은 어떤 가정 아래서 병력의 효과가 제곱으로 커질 수 있다는 수학적 구조이지, 실제로 어느 쪽이 옳았거나 이길 것이라는 주장이 아닙니다.
이론적 근거와 구현 메모
- 모델의 뿌리: 프레더릭 란체스터(F. W. Lanchester)가 『Aircraft in Warfare』(1916)에서 소개한 전투 모델입니다. 군대의 병력이 서로의 손실률에 비례해 줄어든다는 미분방정식으로, 겨누어 쏘는 싸움에는 "제곱 법칙"을, 일대일 싸움에는 "선형 법칙"을 보였습니다.
- 핵심 가정과 수식: 겨누어 쏘기:
dA/dt = −β·B,dB/dt = −α·A이고 두 식을 나누어 적분하면α·A² − β·B²가 변하지 않습니다(전투력 = 질 × 병력²). 이긴 쪽에 남는 병력은√(A₀² − (β/α)·B₀²)입니다. 일대일 맞붙기는α·A − β·B가 보존되고 남는 병력은A₀ − (β/α)·B₀입니다. 슬라이더의 병력이 A₀, B₀이고 질 비율이 α/β입니다. - 이 프로젝트의 단순화: 원 모델은 연속적인 병력 수의 평균 변화를 다루지만 여기서는 병사 하나하나가 확률로 쓰러지는 이산 시뮬레이션입니다. 선형 법칙은 마주한 쌍마다 싸우는 모양으로 구현했고 싸움을 빨리 끝내려고 쌍당 명중률을 5배로 두었습니다. 나뉘어 싸우기(두 번째 반은 첫 반이 쓰러진 뒤 합류)와 명중률 수치는 이 프로젝트가 정한 설정입니다. 보충병, 후퇴, 지형은 없습니다.
- 이론값과 시뮬레이션:
node tools/validate-lanchester.js로 300회씩 돌려 닫힌 해와 비교했습니다. 200 대 100(질 같음)에서 제곱 법칙 이론 173.2명(87%) 대 시뮬 평균 171.9명, 선형 법칙 이론 100명 대 시뮬 100.7명입니다. 병력 50~400명에서도 병력 2배일 때 남는 비율은 86~87%로 같아, 규모와 무관함을 확인했습니다. 130 대 100에서 파랑이 나뉘면 이론은 빨강 승, 39.4명 남음, 시뮬은 빨강 84% 승, 평균 40.0명 남음입니다. 시뮬레이션이 약간 낮은 것은 우연과 한 단계씩 끊어 계산한 영향입니다. - 더 읽을거리: F. W. Lanchester, 『Aircraft in Warfare: The Dawn of the Fourth Arm』(1916, Constable). 개설로는 위키백과의 "Lanchester's laws" 항목이 읽기 쉽습니다.
- 검증은
node tools/validate-lanchester.js로 할 수 있습니다. 시뮬레이션은 시드 난수(mulberry32)를 쓰고 같은 시드면 같은 결과가 나옵니다. 가운데 점선 곡선은 같은 규칙을 평균값으로 풀어 그린 것입니다. - ④, ⑤번 그래프는 시뮬레이션이 아니라 위의 식으로 계산한 이론값입니다. 나뉜 군대가 있는 경우는 싸움을 첫 무리, 둘째 무리 차례로 이어서 계산합니다.