You are on page 1of 5

Introducción

Los juegos que hablaremos son juegos de dos personas con información perfecta, no hay posibilidad mueve, y ganar o perder el resultado. En estos juegos, los jugadores usualmente se mueve alternas hasta que llegan a una posición terminal. Después de eso, un jugador es declarado ganador y otro perdedor. La mayoría de los juegos de cartas no se ajustan a esta categoría, por ejemplo, porque no tenemos información sobre qué tarjetas de nuestro oponente. En primer lugar vamos a ver la división básica de posiciones para ganar y perder. Después de eso vamos a dominar el partido más importante - el juego de Nim - y ver cómo la comprensión nos ayudará a jugar juegos compuestos. No vamos a ser capaces de jugar muchos de los juegos sin descomponerse a piezas más pequeñas (sub-juegos), pre-cálculo de algunos valores para ellos, y luego obtener el resultado de la combinación de estos valores.

Los fundamentos
Un ejemplo sencillo es el siguiente juego, dos jugadores que se turnan móviles. Al principio hay monedas n. Cuando es el turno de un jugador que puede llevar 1, 3 o 4 monedas. El jugador que tiene la última distancia es declarado ganador (es decir, el jugador que no puede hacer un movimiento es el perdedor). La pregunta es: ¿Por qué n será el primer jugador en ganar si ambos juegan de manera óptima? Podemos ver que n = 1, 3, 4 están ganando posiciones para el primer jugador, porque simplemente puede tomar todas las monedas. Para n = 0 no hay movimientos posibles - el juego ha terminado - por lo que es la posición de perder el primer jugador, porque él no puede hacer un movimiento de la misma. Si n = 2 en el primer jugador tiene sólo una opción para eliminar 1 moneda. Si n = 5 o 6 que un jugador puede mover a 2 (mediante la eliminación de 3 o 4 monedas), y que está en una posición ganadora. Si n = 7 un jugador puede mover sólo a 3, 4, 6, pero de todos ellos a su oponente puede ganar ... Posiciones tienen las siguientes propiedades:

  

Todas las posiciones terminales están perdiendo. Si un jugador es capaz de moverse a una posición perdedora entonces él está en una posición ganadora. Si un jugador es capaz de moverse a las posiciones ganadoras entonces él está en una posición perdedora. Estas propiedades podrían ser utilizados para crear un simple algoritmo recursivo WL-Algoritmo :

booleano isWinning (posición pos) { mueve [] = posiciones posibles a las que puede pasar de la posición pos; por (todo x jugadas) si (! isWinning (x)) return true;

devolver false; }

Si alguien es incapaz de moverse pierde (por lo que la persona que retira la última moneda es el ganador). Este es el juego que probablemente encontrará más veces y hay muchas variaciones sobre el mismo. así como los juegos que se pueden resolver mediante el uso de los conocimientos de cómo jugar el juego..001) 2 1 0 0 1 3 = (11) 2 1 1 -------- . 3. nuestra secuencia se convertirá en periódica.. Tabla 1 cambiará a la siguiente: n posición 0 W 1 L 2 W 3 L 4 W 5 W 6 W 7 W 8 L 9 W 10 L 11 W Se puede observar que si una posición es ganar o perder depende únicamente de los últimos puestos k. que suelen ser muy fáciles de código.Mientras que sólo hay 2 ^ k valores posibles para las secuencias de la longitud k. Reglas de juego del Nim : Hay n pilas de monedas. se encontrará con ellos como la División I 1000 punteros (aunque espero que el próximo encuentro se parece mucho más fácil). n2. donde k es el número máximo de monedas que podemos llevar. A pesar de estos problemas requieren a menudo una idea inteligente. Cuando es el turno de un jugador opta por una pila y tiene al menos una moneda de ella. Por lo general. Usted puede tratar de utilizar la observación para resolver el siguiente problema: SRM 330: LongLongNim El juego de Nim El juego más famoso matemático es probablemente el juego de Nim. ¿Cómo se xor se calcula? 6 = (110) 2 1 1 0 9 = (1. Es necesario cambiar sólo el comportamiento de las posiciones terminales en WL-Algoritmo.Tabla 1: Juego con 11 monedas y resta conjunto {1. 4}: n posición 0 L 1 W 2 L 3 W 4 W 5 W 6 W 7 L 8 W 9 L 10 W 11 W Este juego puede ser jugado también con una norma (normalmente llamado la regla de juego misére) que el jugador que quita la última moneda es declarado perdedor. xor n k = 0 . nk. sea el tamaño de las pilas.. Deje n1. . Se trata de una posición perdedora para el jugador que tiene el turno es si y sólo si n 1 xor n 2 xor .

estos pueden moverse solamente como se muestra en la imagen siguiente (para que la suma de las coordenadas se reduce en cada movimiento). 2. No puede haber más de un caballero en el mismo cuadrado en el mismo tiempo.1 1 0 0    xor de dos valores lógicos es verdadera si y sólo si una de ellas es verdadera y la segunda es falsa al calcular xor de enteros. así xor de un número par de 1s es 0 y xor de número impar de 1s es 1 ¿Por qué funciona?   Desde las posiciones perdedoras podemos pasar sólo a los ganadores los: . 3) está perdiendo porque 1 xor xor 2 = 3 (1) 2 xor (10) 2 xor (11) 2 = 0 Posición (7. por lo que en esa columna será par número de 1s). Dos jugadores se turnan para mover y. cuando es un jugador de. 4.si xor de los tamaños de las pilas es 0 entonces se cambiará después de nuestro movimiento (por lo menos un 1 será cambiado a 0. Ejemplos: posición (1. a su vez elige a uno de los caballeros y la mueve. Un jugador que no es capaz de hacer un movimiento es declarado perdedor. Juegos compuestos . A diferencia de un caballero en un tradicional juego de ajedrez.números de Grundy juego Ejemplo : N x N tablero de ajedrez con K caballeros en ella. Asignamos a cada . Pequeño consejo: Fíjese en las diferencias entre los tamaños de las pilas. Si usted no sería capaz de resolverlo usted puede encontrar la solución en el SRM 309 Problema conjunto y análisis . Desde las posiciones ganadoras es posible pasar a por lo menos una pérdida: . porque no es tan fácil de identificar dónde están escondidos los tamaños de pilas.si xor de los tamaños de las pilas no es 0 podemos cambiar a 0 mediante la búsqueda de la izquierda de la columna más que el número de 1s es impar. a continuación mediante el cambio de 0s o 1s en el lado derecho de la misma para obtener un número par de 1s en cada columna. primero que escriban los números binarios y luego aplicar xor en columnas. Esto es lo mismo que si tuviéramos tableros K con exactamente un caballo en cada tablero. 1) está ganando por 7 xor xor 4 1 = (111) 2 xor (10) 2 xor (1) 2 = (10) 2 = 2 Problemas Ejemplo: SRM 338: CakeParty SRM 309: StoneGameStrategist El último ejemplo es el problema más difícil. Esta es la suma ordinaria de juegos K y se puede resolver mediante el uso de los números de grundy. el cambio de uno de a 0 y.

int ret = 0. / / Devuelve el menor entero no negativo no en el conjunto de s.contains (r)) ret + +. Un mejor enfoque consiste en calcular el número grundy para un tablero de ajedrez de N x N en O (n ) tiempo y luego XOR estos valores de K (una para cada caballo). } La siguiente tabla muestra los números de grundy de un tablero de 8 x 8: Podríamos tratar de resolver el problema original con el WL-algoritmo.) . ¿Por qué es la pila de Nim equivalente a la subjuego si su tamaño es igual al número de Grundy que subjuego? 2  Si reducimos el tamaño de la pila de Nim de A a B. Cuando sabemos cómo jugar Nim podremos jugar a este juego también. de lo contrario el número de grundy de nuestra posición no sería A. (Nuestra posición actual tiene el número grundy A lo que significa que podríamos pasar a posiciones para Todos más números de Grundy.número grundy subjuego según el cual el tamaño de la pila en el juego de Nim es equivalente a. pero sería el tiempo de espera debido a la gran cantidad de posibles posiciones. entonces estamos en una posición perdedora. mientras que (s. por (todo x jugadas) insert into s grundyNumber (x). int grundyNumber (posición pos) { mueve [] = posiciones posibles a las que se pueden mover de pos establecer s. si no estamos en una posición ganadora. regreso ret. Si su xor es 0. podemos avanzar también en el sub-juego en la posición con el número de grundy B.

Si no. Al hacer esto. Una vez que te diste cuenta la parte de codificación suele ser muy simple y directo. Puede comprobar la corrección de ambas soluciones mediante la verificación de las propiedades básicas (desde una posición ganadora. Si estamos en el sub-juego en la posición con grundy número 0. Berlekamp. es posible que vea los siguientes cambios: 1. moviéndose en ella y disminuyendo su número Grundy también puede disminuir el tamaño de la pila en el Nim.  Si estamos en el subjuego en una posición con un número mayor que 0 Grundy. Richard K. Buena suerte y diviértete. son los mismos. Problemas Ejemplo: SRM 216: Roxor Otros juegos compuestos que no sucede a menudo. o podría ser reducido a uno de ellos. sólo pensar en ejemplos concretos. Cuando es el turno de un jugador puede elegir algunos de los caballos (al menos uno). donde los caballos son. Por ejemplo. Tarea: ¿Qué habría que cambiar si un jugador tenía que moverse con todos los caballos y perdería si no fuera capaz de hacerlo? Conclusión No se preocupe si usted ve un problema juego durante SRM . 2. Otros recursos: Colección de muchos juegos matemáticos teoría de juegos combinatorios introductoria senda del triunfo para sus juegos matemáticos por Elwyn R. Solución: Usted está en una posición perdedora si y sólo si todos los caballos está en una posición perdedora en su propio tablero ( por lo que el número de Grundy para cada plaza. individuo . es 0).podría ser similar a uno de los juegos descritos anteriormente. John H. desde una posición tal que es posible mover de nuevo a 0. y seguir con todos los elegidos. todo funciona para todos los demás juegos de compuestos con estas reglas (no sólo para los juegos de caballos). donde el caballo es. Debido a que. usted puede encontrar juegos con un conjunto ligeramente diferente de reglas. Solución: Usted está en una posición perdedora si y sólo si los números grundy de todo el posiciones. pero de vez en cuando. es posible pasar a una perdedora y desde una posición perdedora es posible pasar sólo a los ganadores unos). Cuando es el turno de un jugador puede elegir algunos de los caballos (al menos uno) y se mueve con todos los elegidos. Por supuesto. podemos anular cada movimiento desde la posición de grundy número 0. Conway. al pasar de que vamos a llegar a una posición con un número grundy mayor que 0. pero no todos ellos.