pqp읽을거리 · 보드게임

보드게임

숫자야구 첫 추측: 648개 후보를 어떻게 나눌까

pqp Team ·

정답은 앞자리 0 없이 서로 다른 숫자입니다. 720은 투구 수, 648은 쉬운 정답 수입니다. 최소최대 기준의 첫 추측을 직접 계산합니다.

숫자야구 첫 추측: 648개 후보를 어떻게 나눌까 설명 그림
야호 보드의 실제 화면. 아래 수순도는 같은 규칙으로 검산한 학습용 예시입니다.

쉬움과 어려움의 실제 규칙

숫자야구는 숨겨진 비밀 숫자를 플레이어가 추측해 맞히는 논리 추론 게임이에요. pqp 규칙에서 보통 난이도는 서로 다른 세 자리 숫자를 사용하며 최대 9번의 투구 기회를 제공해요. 어려움 난이도는 서로 다른 네 자리 숫자를 사용하고 최대 10번의 투구 기회를 줘요. 양쪽 난이도 모두 정답(Secret)의 가장 첫 번째 자리에는 0이 올 수 없다는 엄격한 규칙이 적용돼요.

투구에 대한 판정은 스트라이크(S)와 볼(B)로 이루어져요. 던진 숫자가 정답에 포함되어 있으면서 자릿수 위치까지 완벽히 일치하면 스트라이크 판정을 받아요. 숫자는 정답에 포함되어 있지만 위치가 다른 자리에 있다면 볼 판정을 받아요. 던진 숫자 중 정답에 포함된 숫자가 단 하나도 없다면 0S 0B, 즉 아웃 판정을 받게 돼요.

예를 들어 정답이 "102"일 때 플레이어가 "120"을 던지면, 1은 자리까지 맞아 1 스트라이크이고 0과 2는 자리가 바뀌어 2 볼이 되므로 최종 판정은 "1S 2B"가 돼요. 만약 "345"를 던졌다면 세 숫자 모두 정답에 전혀 없으므로 "0S 0B" 아웃 판정을 받아요. 0S 0B는 비록 아무것도 맞히지 못했지만, 후보군에서 해당 세 숫자를 완전히 지워버릴 수 있는 매우 강력한 정보예요.

같은 투구에서 동일한 숫자를 중복해서 쓸 수 없으며, 이미 이전 턴에 던졌던 숫자를 다시 투구할 수도 없어요. 매 턴 내려지는 판정 결과를 바탕으로 이전의 모든 결과와 완벽하게 부합하는 후보 숫자만을 남겨 압축해 나가는 과정이 게임의 핵심이에요.

자리와 숫자가 모두 일치하는 3스트라이크(보통) 또는 4스트라이크(어려움)가 나오면 승리로 즉시 종료돼요. 제한된 투구 횟수 안에 정답을 도출하기 위해서는 매 투구마다 최대의 소거 효과를 이끌어내는 전략적 질문 선정이 필수적이에요.

720과 648이 함께 등장하는 이유

숫자야구 공략이나 엔진 소스 코드를 읽다 보면 720이라는 숫자와 648이라는 숫자가 나란히 등장해 혼란을 겪는 경우가 많아요. 이 두 숫자는 투구할 수 있는 수의 집합과 정답이 될 수 있는 수의 집합이 서로 다르기 때문에 생겨나는 차이예요.

0부터 9까지 열 개의 숫자 중에서 서로 다른 세 자리를 순서대로 뽑는 모든 순열의 개수는 10 × 9 × 8 = 720개예요. pqp 시스템에서는 플레이어가 첫 자리에 0이 들어가는 수(예를 들어 "012"나 "095")를 던지는 합법 투구를 온전하게 허용해요. 따라서 플레이어가 질문으로 던질 수 있는 투구의 우주는 총 720개예요.

반면에 컴퓨터가 무작위로 생성하는 정답은 첫 자리에 0이 올 수 없어요. 첫 번째 자리에는 1부터 9까지 아홉 개 숫자만 올 수 있고, 두 번째 자리에는 0을 포함해 첫 자리를 제외한 아홉 개, 세 번째 자리에는 남은 여덟 개 숫자가 올 수 있어요. 따라서 가능한 정답 후보의 우주는 9 × 9 × 8 = 648개로 제한돼요. 어려움 난이도인 4자리에서도 마찬가지로 투구 우주는 10 × 9 × 8 × 7 = 5,040개이지만, 실제 정답 후보 우주는 9 × 9 × 8 × 7 = 4,536개가 돼요.

정답이 될 수 없는 "012" 같은 숫자라도 첫 투구 질문으로는 얼마든지 유용하게 활용될 수 있어요. 후보군을 가장 균등하게 쪼갤 수만 있다면 첫 자리가 0인 질문도 훌륭한 탐색 수단이 돼요. 정답 후보 648개와 질문 우주 720개를 명확히 구분하는 것이 확률적 수읽기의 출발점이에요.

다음 표는 보통 난이도와 어려움 난이도의 후보 풀 크기를 요약한 비교표예요.

난이도 자릿수 정답 후보 우주 (Secret Pool) 가능한 투구 우주 (Guess Pool) 최대 투구 기회
보통 3자리 648개 (첫 자리 0 불가) 720개 (첫 자리 0 허용) 9회
어려움 4자리 4,536개 (첫 자리 0 불가) 5,040개 (첫 자리 0 허용) 10회

최소최대 기준에서 첫 추측의 결과

pqp의 숫자야구 시뮬레이션 엔진은 미니맥스(Minimax) 정보 이론에 따라 최적의 추천 수를 계산해요. 720개의 모든 가능한 투구를 대상으로, 648개의 정답 후보들이 각각의 판정(0S 0B, 1S 0B, 0S 1B 등) 버킷으로 나뉘었을 때 가장 큰 버킷의 크기를 최소화하는 투구를 탐색해요. 동률이 발생하면 후보군 잔여량의 제곱합 평균이 가장 작은 수, 정답 후보에 속하는 수, 사전순으로 앞서는 수를 차례로 선택해요.

이 엄밀한 수학적 계산을 거쳐 도출된 3자리 첫 투구의 최적 추천 수는 바로 "102"예요. 648개의 정답 후보군에 "102"를 던졌을 때 나타날 수 있는 모든 S/B 결과 중 가장 불리하게 남는 최악의 후보 묶음 크기는 210개에 불과해요. 모든 판정 결과를 가중 평균한 기대 남은 후보 수는 약 165.91개로 떨어져요. 첫 단 한 번의 투구로 648개 후보를 평균 166개 수준으로 1/4 토막 내버리는 강력한 분할 효율을 자랑해요.

4자리 어려움 난이도에서도 동일한 최소최대 원리가 적용돼요. 5,040개 투구 우주를 검산한 결과 첫 추천 수는 "1234"로 도출돼요. 4,536개의 정답 후보를 대상으로 최악의 판정 버킷 크기는 1,260개이며, 평균 기대 남은 후보 수는 829.63개로 대폭 압축돼요.

여기서 말하는 최적이라는 표현은 단 한 번의 투구로 후보군을 가장 균일하게 쪼개는 1차 분할 지표에 대한 수학적 사실이에요. 숫자의 대칭성 때문에 동일한 지표를 갖는 다른 대칭 수들도 존재하지만, 서비스는 동률 기준에 따라 일관되게 "102"와 "1234"를 추천해 줘요.

두 번째 질문부터는 기록의 일관성이 핵심

첫 투구로 "102"를 던져 "0S 0B" 아웃 판정을 받았다고 가정해 볼게요. 이 한 번의 판정으로 1, 0, 2 세 숫자는 정답에 전혀 없다는 사실이 증명되었어요. 정답에 쓰일 수 있는 남은 숫자는 {3, 4, 5, 6, 7, 8, 9}의 일곱 개 숫자뿐이에요. 일곱 개 숫자 중에서 0이 포함되어 있지 않으므로, 첫 자리 7개, 둘째 자리 6개, 셋째 자리 5개를 순서대로 선택할 수 있어요. 남은 정답 후보 수는 정확히 7 × 6 × 5 = 210개가 돼요.

반대로 "102"에서 "1S 0B" 판정을 받았다면, 1이 백의 자리이거나, 0이 십의 자리이거나, 2가 일의 자리인 세 가지 경우의 수로 후보군이 나뉘어요. 두 번째 투구부터는 이렇게 걸러진 잔여 후보군을 대상으로 가장 효율적인 분할 질문을 다시 연산해야 해요. 초반 1~2회차에는 정답을 즉시 맞히려는 욕심을 버리고, 판정에 사용되지 않은 새로운 숫자들을 적극적으로 섞어 던져 후보군을 최대한 압축하는 것이 고득점의 비결이에요.

실전에서 자주 하는 실수는 이전 기록과 모순되는 입력을 넣어 남은 후보군을 0개로 만들어버리는 현상이에요. 남은 후보가 0개가 되었다는 메시지가 뜨면 엔진 오류가 아니라 플레이어가 S와 B를 거꾸로 적었거나, 이미 탈락한 숫자를 다른 조건과 섞어 오판한 경우가 대부분이에요.

pqp 숫자야구 게임에서 보통 난이도를 선택하고 첫 구로 "102"를 던져보세요. 판정 결과가 나오는 즉시 추천 엔진이 남은 후보 개수와 다음 최적 투구를 어떻게 좁혀나가는지 대조해 보면 정밀한 논리 소거법의 위력을 실감할 수 있어요.

확인한 자료와 정정 문의

이 글은 아래 구현과 예시를 기준으로 썼습니다. 도구의 모형과 실제 게임의 최신 규칙이 다른 경우에는 게임 공지를 먼저 확인해주세요. 잘못된 설명은 운영자에게 알려주세요.

  • pqp 숫자야구의 스트라이크·볼 판정 규칙
  • 미니맥스 정보 이론 기반의 최적 투구 추천 시뮬레이션
  • 3자리·4자리 난이도별 후보군 분할 검산 데이터
직접
해보기

설명한 규칙을 직접 확인해보세요.