숫자 야구는 어떤 문제를 푸는 게임인가
컴퓨터가 0~9 중 서로 다른 숫자 몇 개로 비밀번호를 정하고, 여러분은 매번 같은 자릿수의 숫자를 불러 “몇 스트라이크 몇 볼”이라는 힌트만 받습니다. 본질적으로는 가능한 후보를 힌트로 계속 지워 가는 소거 추리 게임입니다. 운으로 한 번에 맞힐 수도 있지만, 매 시도가 후보를 얼마나 줄이는지 의식하면 같은 자릿수에서도 시도 횟수가 눈에 띄게 줄어듭니다.
힌트 읽는 법
- 스트라이크(S): 숫자와 자리가 모두 맞은 개수입니다.
- 볼(B): 숫자는 비밀번호에 있지만 자리가 다른 개수입니다.
- S+B: 내가 부른 숫자 중 비밀번호에 들어 있는 숫자의 개수입니다. 자리를 몰라도 “어떤 숫자가 들었는가”만 따로 추릴 수 있게 해 줍니다.
- 아웃(0S0B): 부른 숫자가 전부 비밀번호에 없다는 뜻이라, 그 숫자들은 이후 모두 제외할 수 있습니다.
이 도구는 비밀번호도 추측도 서로 다른 숫자여야 하며 0~9 중 어느 숫자든 첫 자리가 될 수 있습니다. 중복 숫자나 자릿수가 다른 입력은 시도 횟수에 넣지 않고 오류 문구만 보여 줍니다.
경우의 수 표
서로 다른 숫자 n개를 순서대로 나열하는 가짓수는 10 x 9 x 8 x ... (n개 곱)입니다. 힌트로 나올 수 있는 응답의 종류는 (S, B) 쌍 중 S+B가 n 이하인 경우에서, S=n-1이면서 B=1인 경우(불가능)를 뺀 개수입니다.
| 자릿수 | 가능한 비밀번호 수 | 가능한 힌트 응답 종류 |
|---|---|---|
| 3자리 | 720가지 | 9종류 |
| 4자리 | 5,040가지 | 14종류 |
| 5자리 | 30,240가지 | 20종류 |
한 번의 시도가 줄 수 있는 정보는 응답 종류 수를 넘지 못합니다. 4자리라면 5,040가지 후보를 한 번에 14개 묶음 이하로만 나눌 수 있다는 뜻이고, 그래서 4자리를 단 한두 번 만에 확정하는 일은 우연이 아니면 불가능합니다.
첫 추측 하나가 후보를 어떻게 나누는가
4자리에서 첫 추측으로 0123을 불렀을 때, 5,040가지 비밀번호가 받는 힌트별 분포를 계산한 것입니다(빌드 시 전수 계산).
| 받는 힌트 | 남는 후보 수 | 비율 |
|---|---|---|
| 0S1B | 1,440 | 28.6% |
| 0S2B | 1,260 | 25.0% |
| 1S1B | 720 | 14.3% |
| 1S0B | 480 | 9.5% |
| 아웃(0S0B) | 360 | 7.1% |
| 0S3B | 264 | 5.2% |
| 1S2B | 216 | 4.3% |
| 2S0B | 180 | 3.6% |
| 2S1B | 72 | 1.4% |
| 3S0B | 24 | 0.5% |
| 0S4B | 9 | 0.2% |
| 1S3B | 8 | 0.2% |
| 2S2B | 6 | 0.1% |
| 4S0B | 1 | 0.0% |
가장 흔한 힌트 하나가 전체의 상당 부분(표의 맨 윗줄)을 차지하고, 정답(4S0B)은 1가지뿐입니다. 첫 시도 결과가 어떻게 나오든 후보는 최대 한 묶음 크기까지로 줄어들며, 이 분포를 알면 어떤 힌트가 “운이 좋은” 결과인지 짐작할 수 있습니다.
전략: 모순 없는 숫자만 부르기
- 첫 두세 번은 숫자 종류 파악. 서로 겹치지 않는 숫자로 S+B를 모아 어떤 숫자가 들었는지부터 좁힙니다.
- 지금까지의 모든 힌트와 모순 없는 숫자를 다음 추측으로 삼습니다. 이렇게 하면 매 추측이 정답일 가능성이 있으면서 후보도 확실히 줄입니다. 위의 “남은 후보 수 보기” 옵션을 켜면 이 방식이 얼마나 잘 줄이는지 확인할 수 있습니다.
- 자리 바꾸기로 검증. 같은 숫자 조합에서 자리만 바꿔 S가 늘고 줄어드는 변화를 보면 각 자리의 숫자를 확정할 수 있습니다.
- 아웃이 나오면 그 숫자들을 지웁니다. 아웃은 가장 정보가 많은 결과 중 하나입니다.
시뮬레이션으로 확인한 시도 횟수
“지금까지의 힌트와 모순 없는 가장 앞 번호를 계속 부르는” 단순 전략(숫자 오름차순으로 정렬한 후보 중 첫 번째)을 가능한 모든 비밀번호에 적용해 시도 횟수를 센 결과입니다. 3·4자리는 전체 비밀번호를, 5자리는 계산량 때문에 전체의 10분의 1(3,024개, 10개마다 1개 추출)을 사용했습니다.
| 자릿수 | 평균 시도 횟수 | 가장 많이 걸린 경우 |
|---|---|---|
| 3자리 | 약 5.27회 | 9회 |
| 4자리 | 약 5.56회 | 9회 |
| 5자리(표본) | 약 6.01회 | 9회 |
이 수치는 위 전략의 측정값일 뿐 “최적 전략의 평균”이 아닙니다. 첫 추측을 달리하거나 후보를 더 잘 나누는 수를 고르면 더 나은 결과가 나올 수 있으며, 그 한계 값은 이 페이지에서 확인하지 못했으므로 적지 않습니다.
시도 횟수의 분포 전체 보기
평균만으로는 운이 좋거나 나쁜 경우가 얼마나 흔한지 알 수 없어서, 같은 단순 전략으로 3자리 720개와 4자리 5,040개 비밀번호를 하나도 빼지 않고 풀어 시도 횟수별 개수를 센 표입니다(빌드 시 전수 계산). 4자리 기준 평균은 5.56회, 3자리는 5.27회이고 두 경우 모두 가장 오래 걸린 비밀번호는 9번째에 맞혔습니다.
| 시도 횟수 | 3자리 (720개) | 4자리 (5,040개) |
|---|---|---|
| 1회 | 1개 (0.1%) | 1개 (0.0%) |
| 2회 | 8개 (1.1%) | 13개 (0.3%) |
| 3회 | 40개 (5.6%) | 108개 (2.1%) |
| 4회 | 131개 (18.2%) | 596개 (11.8%) |
| 5회 | 236개 (32.8%) | 1,668개 (33.1%) |
| 6회 | 205개 (28.5%) | 1,768개 (35.1%) |
| 7회 | 73개 (10.1%) | 752개 (14.9%) |
| 8회 | 24개 (3.3%) | 129개 (2.6%) |
| 9회 | 2개 (0.3%) | 5개 (0.1%) |
분포는 5~6회에 몰려 있고, 1회로 끝나는 것은 첫 추측이 우연히 정답인 단 한 가지뿐입니다. 이 표는 위 단순 전략에 한정된 결과이므로 다른 전략이나 사람의 추리에는 그대로 적용되지 않습니다.
공통 숫자 개수(S+B)로 보는 첫 추측의 정보량
첫 추측 0123에서 S+B는 “비밀번호에 0, 1, 2, 3 중 몇 개가 들었는가”와 같습니다. 5,040개 후보를 이 값으로 묶으면 아래와 같고, 대부분이 1~2개를 공유하는 쪽에 몰립니다.
| 0·1·2·3 중 들어 있는 개수 | 후보 수 | 비율 |
|---|---|---|
| 0개 | 360 | 7.1% |
| 1개 | 1,920 | 38.1% |
| 2개 | 2,160 | 42.9% |
| 3개 | 576 | 11.4% |
| 4개 | 24 | 0.5% |
표에서 4개(0123의 순서만 다른 24가지)나 0개(4~9 여섯 숫자만 쓴 360가지)가 나오면 숫자 구성이 크게 정해지는 “정보가 많은” 결과이고, 1~2개가 나오면 후보가 아직 많이 남습니다. 첫 추측에서 가장 흔한 응답이 곧 가장 정보가 적은 응답이라는 점을 기억해 두면 힌트 해석의 기대치를 잡기 쉽습니다.
정보량으로 본 최소 시도 횟수
한 번의 추측이 가를 수 있는 묶음은 응답 종류 수를 넘지 못하므로, t번 추측으로 구분할 수 있는 후보는 많아야 (응답 종류 수)의 t제곱입니다. 이 값이 후보 수 이상이 되는 가장 작은 t가 아래 표이며, 어떤 전략으로도 최악의 경우를 이보다 적게 보장할 수 없다는 느슨한 하한입니다. 실제 최악의 경우는 이보다 크고 정확한 값은 이 페이지에서 확인하지 못했으므로 적지 않습니다.
| 자릿수 | 후보 수 | 응답 종류 | 정보량 하한(회) |
|---|---|---|---|
| 3자리 | 720 | 9종류 | 3회 이상 |
| 4자리 | 5,040 | 14종류 | 4회 이상 |
| 5자리 | 30,240 | 20종류 | 4회 이상 |
검산한 예시
예시 1. 힌트 계산. 비밀번호 1234에 1243을 부르면 1과 2는 자리까지 맞아 2S, 3과 4는 숫자는 맞고 자리만 바뀌어 2B가 됩니다. 4321을 부르면 네 숫자가 모두 포함되지만 자리는 하나도 맞지 않아 0S4B입니다. 5678은 겹치는 숫자가 없어 아웃입니다.
예시 2. 4자리 추적(비밀번호 8051). 위 단순 전략으로 풀면 7번째에 맞힙니다.
| 시도 | 부른 수 | 받은 힌트 | 부르기 전 후보 수 |
|---|---|---|---|
| 1 | 0123 | 0S2B | 5040 |
| 2 | 1045 | 1S2B | 1260 |
| 3 | 1254 | 1S1B | 72 |
| 4 | 1406 | 0S2B | 25 |
| 5 | 5034 | 1S1B | 4 |
| 6 | 7051 | 3S0B | 3 |
| 7 | 8051 | 4S0B | 2 |
첫 힌트 0S2B 하나로 5,040개가 1,260개로 줄고, 세 번째 시도 후에는 두 자릿수 이하로 떨어지는 모습을 볼 수 있습니다.
예시 3. 3자리 추적(비밀번호 729). 같은 전략이 012(0S1B) → 134(아웃) → 256(0S1B) → 507(0S1B) → 680(아웃) → 729 순으로 6번 만에 맞힙니다. 후보 수는 720 → 252 → 80 → 24 → 6 → 1로 줄었고, 아웃이 두 번 나온 덕에 사용한 숫자를 한꺼번에 지울 수 있었습니다.
예시 4. 4자리 추적(비밀번호 3947). 단순 전략으로 풀면 6번 만에 맞힙니다. (괄호의 후보 수는 각 수를 부르기 전 기준) 0123(0S1B, 후보 5,040) → 1456(0S1B, 1,440) → 2578(0S1B, 378) → 3689(1S1B, 80) → 3794(1S3B, 12) → 3947(4S0B, 2)입니다. 앞의 세 번이 모두 “볼 하나”라는 비슷한 힌트였는데도 후보는 5,040개에서 378개까지 줄었고, 네 번째에서 80개, 다섯 번째에서 12개로 급히 줄었습니다. 마지막 후보가 둘일 때는 운이 반반이어서 이 경우 첫 번째로 부른 쪽이 맞았습니다.
예시 5. 3자리 추적(비밀번호 987). 012(아웃) → 345(아웃) → 678(0S2B) → 769(0S2B) → 896(0S2B) → 987(3S0B)로 6번입니다. 아웃이 두 번 연속 나오면 0~5를 모두 지워 후보가 720개에서 210개로, 다시 24개로 급감합니다. 세 번째부터는 6~9 네 숫자 중 세 개가 들었다는 사실만 알 뿐이어서 자리를 배열하는 추리가 남는 단계가 됩니다.
이 도구의 입력과 판정이 실제로 동작하는 방식
- 입력은 선택한 자릿수와 같은 길이의 숫자여야 하며 앞뒤 공백은 지워집니다. 입력칸은 자릿수만큼으로 길이가 제한되고, 길이나 문자가 맞지 않으면 시도 횟수를 올리지 않고 안내만 보여 줍니다.
- 0으로 시작하는 입력(0123)은 문자열로 처리되므로 앞의 0이 사라지지 않습니다. 비밀번호 쪽도 0~9를 섞어 앞에서 자릿수만큼 뽑는 방식이라 첫 자리가 0이 될 수 있습니다.
- 자릿수 선택을 바꾸면 곧바로 새 게임이 시작되어 시도 기록과 비밀번호가 바뀝니다. 진행 중이던 판은 이어지지 않습니다.
- 정답을 맞히거나 포기한 뒤에는 입력을 더 해도 반응하지 않습니다. 새 게임 버튼을 눌러야 다시 시작합니다.
- 기록은 최근 시도가 위에 오도록 쌓입니다. 남은 후보 수 옵션은 켜고 끄는 즉시 반영되며, 켜 두지 않아도 내부에서는 계속 후보를 추적합니다.
- 컴퓨터는 힌트를 거짓으로 주지 않으며, 응답은 위 판정 규칙(자리와 숫자가 모두 같으면 S, 숫자만 있으면 B)과 정확히 같습니다.
연습 순서 제안
처음에는 3자리에서 남은 후보 수 옵션을 켜고, 내 추리가 후보를 줄이는 만큼 줄이는지 숫자로 확인하세요. 같은 비밀번호에서 후보가 거의 줄지 않는 시도가 반복되면 숫자 구성을 파악하는 단계와 자리를 맞추는 단계를 섞어 부르고 있다는 신호입니다. 익숙해지면 옵션을 끄고 4자리로 올리되, 위 분포표에서 5~6회에 가장 많은 개수가 몰려 있다는 점을 기준 삼아 내 기록과 비교해 보세요. 이 표는 단순 전략의 결과이므로 비교 대상일 뿐 목표 점수는 아닙니다. 친구와 겨룬다면 같은 자릿수와 같은 옵션 설정에서 시도 횟수를 비교해야 공정합니다. 비밀번호는 새 게임마다 무작위로 정해지므로 두 사람이 같은 문제를 푸는 것은 아니라는 점도 감안하세요.
흔한 실수와 한계
- S와 B의 합만 보고 자리를 추측해 버리는 실수가 많습니다. 합은 “포함 개수”일 뿐이라, 자리는 서로 다른 배치를 비교해야 알 수 있습니다.
- 같은 숫자를 두 번 쓰는 추측은 이 도구에서 받아들여지지 않습니다. 비밀번호가 항상 서로 다른 숫자라 어차피 정보가 줄기 때문입니다.
- 힌트 해석에 확신이 없을 때는 “남은 후보 수” 옵션으로 자신의 추론이 틀렸는지 확인할 수 있지만, 이 옵션을 켜고 이긴 기록은 순수 실력과 구분해서 보세요.
- 비밀번호는 브라우저의 Math.random으로 정해지는 놀이용 난수입니다. 보안이나 추첨 용도의 난수가 아닙니다.
- 시도 기록과 결과는 저장되지 않습니다. 새로고침하면 사라지고 기기 간 동기화도 없습니다.
결과를 활용하는 법
끝난 뒤에는 기록 목록을 위에서 아래로 훑으며 각 시도가 후보를 얼마나 줄였는지 되짚어 보세요. 후보가 거의 줄지 않은 시도가 있다면 그 숫자 조합이 이미 알려진 정보와 겹쳤을 가능성이 큽니다. 3자리에서 안정적으로 5회 안팎이 나오면 4자리로, 그다음 5자리로 올리는 것이 자연스러운 순서입니다.
자주 묻는 질문
같은 숫자를 두 번 입력해도 되나요?
안 됩니다. 이 도구는 추측도 서로 다른 숫자로만 받습니다. 중복 숫자를 입력하면 오류 안내가 뜨고 시도 횟수는 늘지 않습니다.
첫 자리가 0일 수도 있나요?
네. 0~9 중 서로 다른 숫자를 뽑아 그대로 이어 붙이기 때문에 0123 같은 비밀번호도 가능합니다. 그래서 3자리의 총 가짓수는 10 x 9 x 8 = 720가지입니다.
4자리에서 3스트라이크 1볼은 왜 나오지 않나요?
세 자리가 자리까지 맞았다면 비밀번호에서 아직 정해지지 않은 자리는 한 곳뿐입니다. 부른 마지막 숫자가 비밀번호에 들어 있다면 그 숫자는 반드시 그 한 곳에 있어야 하므로 스트라이크가 되고, 들어 있지 않다면 아무 힌트도 없습니다. 볼이 될 자리가 남아 있지 않아서 3S1B는 나올 수 없습니다.
왜 “야구”라고 부르나요?
자리까지 맞으면 스트라이크, 숫자만 맞으면 볼이라는 야구 용어를 빌려 이름이 붙은 것으로 알려져 있습니다. 자세한 유래는 문헌마다 달라 이 페이지에서는 단정하지 않습니다.
몇 번 안에 맞히면 잘한 건가요?
위 시뮬레이션의 단순 전략이 4자리에서 평균 약 5.6회였다는 것을 기준점으로 삼을 수 있습니다. 다만 이는 기준용 측정값이며, 사람마다 첫 추측이나 운에 따라 분포가 크게 달라집니다.
5자리는 왜 별도 시뮬레이션 표본만 있나요?
5자리의 전체 후보는 30,240가지라 모든 비밀번호를 풀면 계산량이 크기 때문에, 위 시뮬레이션 표에서는 표본으로 평균을 냈습니다. 분포표는 전수 계산이 가능한 3·4자리만 실었습니다.
4자리인데 10개의 숫자 중 6개는 쓰이지 않는 건가요?
네. 비밀번호는 0~9 중 서로 다른 4개이므로 항상 6개의 숫자는 들어 있지 않습니다. 그래서 첫 추측에서 “아웃”이 나오면 부른 4개를 전부 지워 남은 6개로 후보를 크게 좁힐 수 있습니다.
정답이 어떻게 정해지는지 공정한가요?
0~9를 무작위로 섞은 뒤 앞에서 자릿수만큼 가져오는 방식이라 가능한 비밀번호가 모두 같은 확률로 나옵니다. 다만 브라우저의 Math.random을 쓰는 놀이용 난수이므로 보안이나 추첨에는 쓰지 마세요.
이어서 해 볼 만한 추리 게임
범위를 반씩 줄이는 업다운 숫자 맞히기, 색 조합을 추리하는 색 코드 추리 게임, 글자를 하나씩 맞히는 행맨, 영어 단어를 추리하는 단어 맞추기 게임도 함께 즐겨 보세요.