에듀테크 프로젝트 대시보드
님 게임 (Nim)
무더기의 돌을 클릭해 가져갈 만큼 선택한 뒤 가져가기를 누르세요. (한 번에 한 무더기에서만 가능)
x 의 최상위 1비트 를 가진 무더기를 골라,
그 무더기를 a XOR x 개로 줄이면 님 합이 0이 됩니다.
핵심은 두 가지 성질입니다.
a XOR x < a 이므로
그만큼 덜어내는 합법적인 수가 항상 있습니다.
결국 "님 합 0" 상태를 상대에게 계속 떠넘기면 마지막엔 상대가 빈 판을 받습니다.
best_move 로 둡니다. 당신이 필승 상태(님 합≠0) 에서
정확한 수 를 두지 않으면, 컴퓨터가 즉시 주도권을 가져가 절대 지지 않습니다.
모든 "공정한(impartial) 조합 게임"은 하나의 님 무더기 와 동등합니다. 각 상태의 크기를 그런디 수(Grundy number, 님值)라 부릅니다.
g(s) = mex{ g(다음 상태들) }
mex = 그 집합에 없는 가장 작은 0 이상 정수.
여러 게임을 동시에 하면 각 그런디 수를 XOR — 님과 똑같습니다.
예: "한 무더기에서 1·2·3개만 가져가기" 게임의 그런디 수
| 돌 n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| g(n) | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 |
g(n)=0 인 4의 배수 가 필패 위치.