4 votos

Tirar Monedas y Ventajas

Usted y yo decidimos jugar un juego donde nos turnamos lanzar una moneda. El primer jugador para voltear 10 cabezas, gana el juego. Naturalmente, no es un argumento acerca de que debe ir primero.

Las simulaciones de este juego demuestra que el jugador voltea primera gana un 2% más que el jugador voltea segundo. Me gustaría hacer esto más preciso, pero se han topado con algunos problemas.

Esto no es una variable aleatoria binomial, ya que no hay número fijo de ensayos (flip hasta que alguien consigue 10 cabezas). ¿Cómo puedo modelo de esto?

2voto

gar Puntos 3883

(Respuesta suponiendo que el número de caras obtenido no necesitan ser consecutivos, y la primera persona a la obtención de 10 cabezas de gana)

Podemos resolver utilizando la cadena de Markov, donde la matriz de transición en caso de ganar con 2 cabezas (por ejemplo) es

$ \left(\begin{array}{l|rrrrrrrrrr} & \textbf{A00} & \textbf{A01} & \textbf{A10} & \textbf{A11} & \textbf{B00} & \textbf{B01} & \textbf{B10} & \textbf{B11} & \textbf{x2} & \textbf{2x} \\ \hline \textbf{A00} & 0 & 0 & 0 & 0 & \frac{1}{2} & 0 & \frac{1}{2} & 0 & 0 & 0 \\ \textbf{A01} & 0 & 0 & 0 & 0 & 0 & \frac{1}{2} & 0 & \frac{1}{2} & 0 & 0 \\ \textbf{A10} & 0 & 0 & 0 & 0 & 0 & 0 & \frac{1}{2} & 0 & 0 & \frac{1}{2} \\ \textbf{A11} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \frac{1}{2} & 0 & \frac{1}{2} \\ \textbf{B00} & \frac{1}{2} & \frac{1}{2} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ \textbf{B01} & 0 & \frac{1}{2} & 0 & 0 & 0 & 0 & 0 & 0 & \frac{1}{2} & 0 \\ \textbf{B10} & 0 & 0 & \frac{1}{2} & \frac{1}{2} & 0 & 0 & 0 & 0 & 0 & 0 \\ \textbf{B11} & 0 & 0 & 0 & \frac{1}{2} & 0 & 0 & 0 & 0 & \frac{1}{2} & 0 \\ \textbf{x2} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ \textbf{2x} & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{array}\right) $

"2x" es el estado donde el primer jugador gana.

"A10" significa que el primer turno del jugador, con el que el jugador de haber lanzado el 1 de cabeza y el segundo jugador no ha echado la cabeza todavía.

Calcular la probabilidad de que el primer jugador que gana cuando el objetivo es llegar a dos jefes primera es $\dfrac{16}{27} \approx 0.592592592592593$ que está de acuerdo con una simulación.

Se extiende de este a 10 cabezas da la probabilidad de que el primer jugador que gana como $\dfrac{619380496}{1162261467} \approx 0.532909774251339$

Una adivinar rutina aparece la siguiente recurrencia de la forma:

\begin{align*} f(n) &= \frac{5 (2 n-3)}{9 (n-1)} f(n-1) -\frac{(n-2)}{9 (n-1)}f(n-2)+\frac{2}{9 (n-1)}\\ f(0) &= 1 \\ f(1) &= \frac{2}{3} \end{align*}

2voto

David K Puntos 19172

Podemos jugar a este juego equivalente: ambos jugadores flip simultáneamente. Repita hasta que al menos uno de los jugadores ha cambiado cabezas y diez veces. Si ambos jugadores voltear su décimo cabeza de forma simultánea, el jugador a gana. De lo contrario, el jugador que primero se voltea su décimo cabeza de la gana.

Deje $p$ la probabilidad de que los jugadores de forma simultánea llegar a diez cabezas de cada uno. Entonces la probabilidad de que el jugador a gana es $(1+p)/2.$

Para llegar a diez cabezas simultáneamente, los jugadores deben haber volteado $9$ cabezas en el primer $n+9$ volteretas, luego voltear las cabezas de flip número $n+10,$ donde $n\geq0.$ Así $$ p = \sum_{n=0}^\infty \binom{n+9}{9} 4^{-(n+10)}. $$ Wolfram Alpha dice que esto es aproximadamente $0.0658195.$ Por lo tanto el jugador a gana con probabilidad de aproximadamente el $0.53291.$ Esto concuerda con las otras respuestas tan lejos que suponga el diez cabezas no necesita ser lanzados de forma consecutiva.

1voto

Brian Tung Puntos 9884

Enfoque básico. Ya que los pasos son bastante uniforme, puede resolver esto con una recurrencia, a la vista del resultado después de cada ronda de lanzamientos. Ignoramos todas las rondas donde ambos jugadores flip colas, así que nos quedamos con una probabilidad de un tercio de cada Jugador $1$ voltear cabezas, Reproductor de $2$ voltear la cabeza, y ambos jugadores voltear cabezas. Por lo tanto,

$$ p(0, 0) = 1 $$

$$ p(i, -1) = p(-1, j) = 0 \qquad \forall (i, j $$

$$ p(i, j) = \frac{p(i-1, j)+p(i, j-1)+p(i-1, j-1)}{3} \qquad \forall (i, j \geq 0 \text{ (con la excepción de $i = j = 0$)} $$

La probabilidad de que el Jugador $1$ ganar es entonces

$$ P(\text{Jugador de $1$ gana}) = \sum_{j=0}^{10} p(10, j) $$

Este parece que es más fácil sólo para el código de seguridad de un cálculo que resolver las sumas parciales analíticamente. Puedo obtener el mismo resultado que @gar.

0voto

justartem Puntos 13

Usted puede modelar este problema mediante la toma de $X_1,X_2,\dots $ $Y_1,Y_2,\dots$ ser independiente de variables binarias con una probabilidad de $\frac{1}{2}$. Deje $t_1$ $t_2$ ser el más pequeño de los valores de tales que $X_t,X_{t-1},\dots X_{t-9}$ $Y_t,T_{t-1},\dots, Y_{t-9}$ son todos unos. Deje $A$ ser el caso de $t_1\geq t_2$ y deje $p(n)$ la probabilidad de que $t_1=n$ ( esta es la misma que la probabilidad de que $t_2=n$).

Tenemos que $P(A)=\sum\limits_{n=1}^\infty\sum\limits_{m=n}^\infty p(n)p(m)=\dfrac{(\sum\limits_{n=1}^\infty p(n))^2+\sum\limits_{n=1}^\infty p(n)^2}{2}=\frac{1}{2}+\sum\limits_{n=1}^\infty \frac{P(n)^2}{2}$.

¿Cómo podemos calcular el $p(n)$?

Tenemos $p(10)=2^{-10},P(11)=2^{-11}$ $n>11$ tenemos $p(n)=2^{-11}(1-Q(n-12))$ .

Esto nos permite aproximar $P(A)$ mediante el cálculo de suffiecently grandes valores de $p(n)$, se puede notar que la $\sum\limits_{n=N+1}^\infty P(n)^2\leq \sum\limits_{n=N+1}^\infty P(n)$. Podemos controlar esta última suma bastante bien, observe que la probabilidad de que al menos una racha aparece en la primera $N$ tiros es, al menos,$1-(1-2^{-10})^{\lfloor N/10 \rfloor}$. Para que podamos dar una buena precisión a nuestras aproximaciones.

Una aproximación con aproximadamente $100,000$ términos de los rendimientos de $0.500061$.

Que creo que tiene sentido, se espera que el número de lanzamientos es $2(2^9-1)=1022$, lo $p(n)$ no concentrarse realmente densamente alrededor de un conjunto determinado de valores. $2\%$ le parece muy alta para mí como la probabilidad de que $t_1=t_2$.

aquí es el código utilizado para la aproximación:

#include <bits/stdc++.h>
using namespace std;

const int MAX=10000010;
double P[MAX];
double Q[MAX];

int main(){
    for(int n=10;n<MAX;n++){
        if(n==10) P[n]=pow(0.5,11);
        if(n==11) P[n]=pow(0.5,12);
        if(n>11) P[n]=pow(0.5,12)*(1-Q[n-12]);
        Q[n]=Q[n-1]+P[n];
    }
    double res=0;
    for(int i=0;i<MAX;i++){
        res=res+P[i]*P[i];
    }
    printf("%f\n",0.5+res/2);
}

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