위토프 게임 계산기
돌무더기 둘의 개수를 넣으면 지금 차례가 이기는 자리인지 지는 자리인지 판정하고 이기는 수를 모두 보여 줍니다. 지는 자리가 황금비로 나오는 것과, 님의 XOR 판정이 위토프에서는 통하지 않는 것을 나란히 확인할 수 있습니다.
(5, 7)
지금 차례가 이깁니다
지는 자리로 넘길 수 있는 수가 3가지 있습니다.
이기는 수
작은 무더기에서만 1개를 가져가 (4, 7)로 만듭니다.
큰 무더기에서만 4개를 가져가 (5, 3)로 만듭니다.
양쪽에서 같은 만큼 2개를 가져가 (3, 5)로 만듭니다.
남기는 자리가 모두 아래 표의 «지는 자리»입니다. 상대에게 지는 자리를 넘기고 그것을 되풀이하면 결국 (0, 0)을 상대에게 넘기게 되어 이깁니다.
지는 자리
| k | 작은 쪽 ⌊kφ⌋ | 큰 쪽 ⌊kφ²⌋ | 차이 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 2 | 1 |
| 2 | 3 | 5 | 2 |
| 3 | 4 | 7 | 3 |
| 4 | 6 | 10 | 4 |
| 5 | 8 | 13 | 5 |
| 6 | 9 | 15 | 6 |
| 7 | 11 | 18 | 7 |
| 8 | 12 | 20 | 8 |
| 9 | 14 | 23 | 9 |
| 10 | 16 | 26 | 10 |
| 11 | 17 | 28 | 11 |
| 12 | 19 | 31 | 12 |
| 13 | 21 | 34 | 13 |
두 값의 차이가 정확히 k입니다. φ² = φ + 1이기 때문입니다. 이 표는 부동소수점 ⌊kφ⌋로 만든 것이 아니라 정수만 쓰는 규칙(아직 안 쓰인 가장 작은 수를 작은 쪽으로, 거기에 k를 더한 것을 큰 쪽으로)으로 만들고 닫힌 식과 대조한 것입니다 — 경계에서 흔들리지 않게 하기 위해서입니다.
계산 방법
- 1두 무더기의 돌 개수를 각각 넣습니다.
- 2지금 차례가 이기는 자리인지 지는 자리인지 확인합니다.
- 3이기는 자리라면 아래 「이기는 수」에서 어떤 무더기에서 몇 개를 가져갈지 고릅니다.
- 4「님이라면 (XOR)」 줄을 보며 두 게임의 판정이 갈리는 자리를 찾아봅니다.
- 5아래 표에서 지는 자리가 ⌊kφ⌋·⌊kφ²⌋로 나오는 것을 확인합니다.
자주 묻는 질문
돌무더기 둘에서 번갈아 가져가되, 한 무더기에서 원하는 만큼 가져가거나 두 무더기에서 같은 개수를 가져갑니다. 마지막 돌을 가져간 쪽이 이깁니다. 님과 다른 것은 「양쪽에서 같은 개수」라는 수가 하나 더 있다는 점뿐입니다.
통하지 않습니다. 예를 들어 (1, 2)는 XOR이 3이라 님이라면 이기는 자리지만 위토프에서는 지는 자리이고, (1, 1)은 XOR이 0이라 님이라면 지는 자리지만 위토프에서는 양쪽에서 하나씩 가져가 이깁니다. 양쪽을 동시에 줄이는 수가 더해지면서 XOR 판정의 근거가 무너지기 때문입니다.
k번째 지는 자리가 (⌊kφ⌋, ⌊kφ²⌋)입니다. φ는 황금비 1.6180339887…이고, φ² = φ + 1이므로 두 값의 차이는 정확히 k가 됩니다. (0,0) (1,2) (3,5) (4,7) (6,10) 순으로 이어집니다.
지는 자리에 쓰이는 두 수열이 0 이상의 모든 정수를 정확히 한 번씩 나눠 갖는 성질(베티 수열)을 가져야 하는데, 그런 두 수열을 만드는 무리수가 황금비이기 때문입니다. 이 도구의 표는 부동소수점 ⌊kφ⌋가 아니라 「아직 안 쓰인 가장 작은 수」라는 정수 규칙으로 만들고 닫힌 식과 대조한 것입니다.
상대가 최선을 다한다는 전제에서만 그렇습니다. 지는 자리에서는 무엇을 해도 상대에게 이기는 자리를 넘기게 되지만, 상대가 한 번이라도 지는 자리를 넘기지 못하면 바로 뒤집힙니다.
됩니다. 이 도구가 보여 주는 수는 모두 상대에게 지는 자리를 넘기는 수이므로, 그중 무엇을 골라도 이후 계속 최선을 두면 이깁니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 정답지는 게임 트리 전수 탐색입니다. 닫힌 식도 그리디도 쓰지 않고 「갈 수 있는 자리 중 지는 자리가 하나라도 있으면 이기는 자리」라는 정의만으로 판정한 결과와, 무더기 60개까지 모든 자리에서 판정이 같은 것을 확인했습니다.
- 화면의 지는 자리 표는 부동소수점 ⌊kφ⌋로 만든 것이 아닙니다. 「아직 안 쓰인 가장 작은 수를 작은 쪽으로, 거기에 k를 더한 것을 큰 쪽으로」라는 정수 규칙으로 만들고, 닫힌 식 (⌊kφ⌋, ⌊kφ²⌋)와 a가 2000이 될 때까지 모두 같은지 대조했습니다. 경계에서 부동소수점이 흔들리는 것을 막기 위해서입니다.
- 두 수열이 0 이상의 모든 정수를 빠짐없이 한 번씩만 쓰는지(베티 수열), 두 값의 차이가 정확히 k인지도 테스트로 고정했습니다.
- 지는 자리에서는 이기는 수가 하나도 없고 이기는 자리에서는 반드시 하나 이상 있는 것, 찾은 수가 모두 실제로 규칙에 맞는 수인 것도 검사합니다.
- 님과 판정이 갈리는 자리가 드물지 않다는 것(무더기 20개까지의 자리 중 10% 이상)을 테스트로 확인했습니다. 님의 XOR을 위토프에 그대로 쓰면 안 되는 이유입니다.
- 무더기는 400개까지 다룹니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.