Soporte, tenemos una tabla de n * m, y dos jugadores juegan a este juego. Descartan las celdas a su vez. Un jugador puede elegir una celda (i, j) y descartar todas las celdas de (i, j) a (n, m), y quién descarta la última celda pierde el juego.Cómo ganar este juego?
Por ejemplo, en una placa 3 * 5, el jugador 1 descarta la celda (3,3) a (3,5), y el jugador 2 descarta (2,5) a (3,5), la placa actual es así: (O significa que la célula no se descarta mientras que x significa que se descarta)
3 O O x x x
2 O O O O x
1 O O O O O
1 2 3 4 5
y después de jugador 1 reglas a las células a partir de (2,1) a (3,5), la junta se convierte en
3 x x x x x
2 x x x x x
1 O O O O O
1 2 3 4 5
Ahora el jugador 2 descarta células a partir de (1,2) a (3,5), que deja sólo (1,1) limpio:
3 x x x x x
2 x x x x x
1 O x x x x
1 2 3 4 5
Así que el jugador 1 tiene que descartar la única (1,1) celda, ya que un jugador debe descartar al menos una casilla en un turno, y pierde el juego.
Es claro que en n * n, 1 * n, y 2 * n (n> = 2) casos, el que juega primero gana.
Mi problema es que, ¿hay alguna estrategia para que un jugador gane el juego en todos los casos? ¿Debería jugar primero?
P.S
creo que se relaciona con estrategias como la programación dinámica o dividir y conquistar, pero no ha llegado a una idea todavía. Así que lo publico aquí.
La respuesta
Gracias a sdcwc's link. Para tablas de más de 1 * 1, el primer jugador ganará. La prueba está sigue: (tomado de la página wiki)
Resulta que para cualquier rectangular posición más grande que 1 × 1 el primero jugador puede ganar a partir. Puede mostrarse usando un argumento de robo de estrategia : suponga que el 2º jugador tiene una estrategia ganadora contra cualquier movimiento inicial de 1er jugador . Supongamos entonces, que el 1er jugador toma solo el cuadrado inferior derecho de . Por nuestra suposición , el 2do jugador tiene una respuesta a esto que forzará victoria. Pero si existe una respuesta ganadora, el 1er jugador podría jugarla como su primer movimiento y forzar la victoria. El segundo jugador no puede tener una estrategia ganadora de .
Y Zermelo's theorem asegura la existencia de una estrategia ganadora.
Aunque es un ejercicio mental interesante, parece más que exagerado llamar a esto relacionado con la programación. al menos como está escrito. – goldPseudo
@goldPseudo Creo que está relacionado con estrategias como programación dinámica o divide y vencerás, pero aún no se ha llegado a una idea. Así que lo publico aquí. – ZelluX
¿Un Nim bidimensional? Interesante. –