Moverse para que el XOR sea cero.
El Nim es el juego imparcial fundamental en la teoría de juegos combinatorios. Lo juegas con varios montones distintos de objetos. Tú y tu oponente se turnan para quitar cualquier cantidad positiva de objetos de un solo montón. El ganador suele ser el último jugador en mover (esta es la convención de juego normal). La estrategia óptima para el Nim depende totalmente de las representaciones binarias de los tamaños de los montones. Específicamente, analizas el estado del juego usando la Suma-Nim, que es la suma XOR bit a bit (OR exclusivo) de los tamaños de los montones.
La idea central de la estrategia óptima es la distinción entre posiciones ganadoras (posiciones $\mathcal{N}$, donde el siguiente jugador —Next— en mover tiene una estrategia ganadora) y posiciones perdedoras (posiciones $\mathcal{P}$, donde el jugador anterior —Previous— tiene la victoria, lo que significa que el jugador actual perderá contra un juego óptimo). Una posición es perdedora si y solo si la Suma-Nim de los tamaños de los montones es cero. Por el contrario, una posición es ganadora si la Suma-Nim es distinta de cero.
Para jugar de forma óptima desde una posición ganadora, tienes que encontrar un movimiento que cambie la Suma-Nim de un valor distinto de cero a cero. Esto le pone una "trampa de suma cero" a tu oponente. Como cualquier movimiento desde un estado