4 votos

Ventaja de ir primero en un juego de mesa

He estado jugando con mi hijo a un sencillo juego de mesa en el que se tira un dado normal de 6 caras y se mueven tantas posiciones como se tiren.
Así que nada del otro mundo, puro juego de suerte.
Últimamente he tratado de enseñarle que no está bien que él vaya siempre primero. No es justo. Entonces me hizo una buena pregunta. "¿POR QUÉ?".
La respuesta es obvia, porque tienes más posibilidades de llegar primero al final del tablero. Puedes tener una tirada extra para llegar al final del tablero.
Pero me gustaría ver algunos números / probabilidades. No para explicar mi hijo, pero para mi paz interior.

Así que mi pregunta es: ¿Existe una fórmula que muestre las posibilidades de ganar si vas primero en función de la longitud del tablero?

Para simplificar, digamos que sólo hay 2 jugadores y que se ignoran las trampas y las bonificaciones del tablero.

Intenté un enfoque gradual.

  • el tablero tiene la longitud 1 => el jugador 1 siempre gana.
  • el tablero tiene la longitud 2 => el jugador 2 gana sólo si P1 saca un 1 y P2 saca 2 o más, por lo que P2 gana con una probabilidad de $\frac{1}{6} \times \frac{5}{6} = \frac{5}{36}$ y P1 con una probabilidad de $\frac{31}{36}$ .
  • el tablero tiene la longitud de 3 => me he perdido en las matemáticas y me duele la cabeza.

Sólo para que conste, mi tabla tiene la longitud de 45.
Parece lógico que cuanto más grande es el tablero más se acercan las posibilidades $\frac{1}{2}$ para cada jugador. Pero, ¿existe una fórmula?

3voto

BDuelz Puntos 1444

No estoy seguro de sus reglas, pero los juegos a los que yo juego tienen la regla de que si la jugadora que se mueve primero llega al final, gana sólo si la otra jugadora que se mueve segundo no llega al final en el movimiento siguiente. En caso contrario, los jugadores empatan.

De todos modos, tu pregunta está relacionada con el número esperado de tiradas de dados necesarias para alcanzar cierta suma. Las preguntas han sido discutidas aquí , aquí , aquí , aquí y como es un problema difícil, se discute la aproximación con la distribución normal aquí puede ayudar. Este es un buen artículo sobre el tema.

En promedio (para muchos rollos), con $6$ -de un dado, se esperaría que el primer jugador que se mueva sea $3.5$ se adelanta al segundo jugador en movimiento después de que el primero se haya movido. Es decir, en promedio, se esperaría que el jugador que se mueve primero gane, pero esta es la intuición que ya se tenía.

Actualización 1: El cálculo es ciertamente posible. Me interesé en cómo cambia la ventaja con el corte requerido para la victoria, $w_{c}$ . A continuación se presenta una función de Matlab que estima la ventaja mediante simulación.

enter image description here

Trazado de la ventaja sobre $w_{c}$ que van desde $1$ a $100$ da esto.

enter image description here

Actualización 2: Puedes pensar en este problema a través de los estados. Dejemos que $(x,y)$ sea un estado, donde $x,y\in\{0,\ldots,w_{c}-1\}$ que captura el estado en el que el jugador 1 está a punto de moverse y en todas las rondas anteriores el jugador $1$ acumulado $x$ en sus dados y el jugador $2$ acumulado $y$ en sus dados. Permítanme también definir los estados en los que $x\geq w_{c}$ para tener un valor de $1$ y los estados en los que $x<w_{c}$ y $y\geq w_{c}$ para tener un valor de $0$ . Los primeros estados son aquellos en los que el jugador $1$ ya ha ganado y los últimos estados son aquellos en los que el jugador $2$ ya ha ganado.

Ahora valor de un estado $(x,y)$ es una probabilidad del jugador $1$ ganando el juego. Se pueden calcular los valores de los estados de forma recursiva ya que dado $(x,y)$ la tirada de un dado por parte del jugador $1$ y luego por jugador $2$ induce una distribución uniforme sobre los estados $(x+i,y+j)$ , donde $i,j\in\{1,\ldots,6\}$ . Es decir, el valor del estado $(x,y)$ , $v_{xy}$ es $v_{xy}=\sum_{i\in\{1,\ldots,6\},j\in\{1,\ldots,6\}}\frac{1}{36}v_{(x+i)(y+j)}$ . El siguiente código implementa esta idea y reproduce el gráfico anterior, aunque de forma más suave. (La no monotonicidad de abajo $10$ sigue ahí).

enter image description here

0 votos

Gracias por los enlaces. Sólo para que conste, la regla que utilizamos es simple. El primero en llegar al final gana. No puede haber un empate.

2voto

Abstraction Puntos 806

Sea la longitud total de un tablero $M$ , dejemos que la probabilidad de llegar al final dentro de $n$ rollos ser $p_{M,n}$ . Obviamente, para $M>6$ $p_{M,n} = {1 \over 6}(p_{M-1,n-1}+p_{M-2, n-1}+...+p_{M-6, n-1})$ . Formalizando $p_{M,n}=1 | M \le 0$ hace que esta expresión sea universal. Además, obviamente $p_{M,n} = 1 | n \ge M$

Probabilidad de llegar al final en exactamente $n$ se convierte en $p_{M,n} - p_{M,n-1}$ . La probabilidad de ganar cuando se va primero es la suma de las probabilidades de ganar en 1, 2 y así sucesivamente: $$F =p_{M,1} + (1-p_{M,1})(p_{M,2} - p_{M,1}) + ... + (1-p_{M,M-1})(p_{M,M}-p_{M,M-1}) = \\ p_{M,1}^2-p_{M,1}p_{M,2}+p_{M,2}^2-p_{M,2}p_{M,3}+...+p_{M,M-1}^2-p_{M,M-1}p_{M,M}+p_{M,M}$$ Al ir en segundo lugar: $$S = (1-p_{M,1})p_{M,1} + (1-p_{M,2})(p_{M,2} - p_{M,1}) + ... + (1-p_{M,M-1})(p_{M,M-1}-p_{M,M-2}) = \\ -p_{M,1}^2+p_{M,1}p_{M,2}-p_{M,2}^2+p_{M,2}p_{M,3}+...+p_{M,M-2}p_{M,M-1}-p_{M,M-1}^2 + p_{M,M-1}$$ Fácil de comprobar $F+S = 1$ y "ventaja" $F-S$ es $$p_{M,1}^2 + (p_{M,2}-p_{M,1})^2 + ... + (p_{M,M}-p_{M,M-1})^2$$ , suma de cuadrados de probabilidades de ganar en cualquier turno. Es posible calcularlo directamente (C#):

    const int size = 45;
    static double[,] mem = new double[size+1, size+1];

    static double p(int M, int n)
    {
        if (n >= M || M <= 0) return 1;
        else if (n <= 0) return 0;

        if (mem[M, n] != -1) return mem[M, n];
        double ret;
        if (n == 1) ret = M > 6 ? 0 : (7 - M) / 6.0;
        else ret = (p(M - 1, n - 1) + p(M - 2, n - 1) + p(M - 3, n - 1) + p(M - 4, n - 1) + p(M - 5, n - 1) + p(M - 6, n - 1)) / 6.0;
        return mem[M, n] = ret;
    }

    static void Main(string[] args)
    {
        for (int i = 0; i < size+1; ++i) for (int j = 0; j < size+1; ++j) mem[i, j] = -1;
        double result = 0.0;

        for (int n = 1; n <= size; ++n) result += (p(size, n) - p(size, n - 1)) * (p(size, n) - p(size, n - 1));

        Console.WriteLine(result);
    }

, dando ~ $0.16$ o las posibilidades de 58:42 para los primeros y segundos participantes. Esto se reduce gradualmente con el aumento del tamaño del campo: ~ $0.108$ para $M=100$ , ~ $0.034$ para $M=1000$ . Dado que la mayoría de los juegos se concluyen dentro de tres sigmas de la media $M / 3.5$ rollos, yo esperaría que la ventaja del primer turno fuera aproximadamente proporcional a la $\sqrt{1 \over M}$ .

0 votos

Esto parece lo que necesito, y coincide con mis sospechas. Tengo que volver a comprobar las matemáticas, porque me he perdido en un momento dado. Y traduciré el código a algún lenguaje con el que esté más familiarizado y te lo devolveré. Gracias por tomarte el tiempo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X