Se le da la oportunidad de tirar un dado de 100 lados y, sin importar cuántos puntos aparezcan, puede elegir (a): tomar tantos dólares, o (b): pagar $ 1 y tirar nuevamente. ¿Cuál es la estrategia óptima y el valor esperado?

Suponga que el valor esperado es E. Tenemos que maximizarlo. Digamos que la estrategia óptima incluye (según corresponda a la primera tirada) parar y tomar dólares si la primera tirada> x, y pagar $ 1 y continuar cuando la primera tirada <= x, donde x está en algún lugar entre 1 a 100.

Una cosa a tener en cuenta aquí es que en cada turno la dinámica de los juegos es similar. Una vez que haya decidido no tomar la cantidad que se muestra en el primer turno y, en su lugar, pagar $ 1, el juego comienza nuevamente con las mismas características, el mismo valor E (teniendo en cuenta la pérdida de $ 1 en la tarifa antes del reinicio del juego). Esto quiere decir que, sea cual sea la estrategia (valor específico de x) que decidamos seguir, en cada turno la misma estrategia es aplicable / utilizable nuevamente.

Entonces, la estrategia óptima es parar y tomar dólares si tira> x, y pagar $ 1 y continuar cuando tira <= x (según corresponda a todos / cualquier turno / tira). Necesitamos encontrar x para maximizar E.

Suponiendo que el valor óptimo esperado sea E, una vez que lanza el primer lanzamiento, hay dos escenarios posibles:
1) obtenemos valor de rollo> x con probabilidad (100-x) / 100, y decidimos tomar esa cantidad, se espera que gane = (x + 1 + 100) / 2 (esa cantidad varía uniformemente de x + 1 a 100 en este caso, toma el promedio)
2) obtenemos un valor de lanzamiento <= x con probabilidad x / 100 y decidimos continuar, con ganancias futuras esperadas nuevamente = E y 1 $ de pérdida en la tarifa. Ganador total esperado en este escenario = E-1

[matemática] E = \ frac {(100-x)} {100} \ veces \ frac {(x + 1 + 100)} {2} [/ matemática] [matemática] + \ frac {x} {100} \ veces (E-1) [/ matemáticas]

[matemáticas] E = \ frac {(100-x) (101 + x) – 2x} {200 – 2x} [/ matemáticas]

maximizando E wrt x,

dE / dx = 0
2x ^ 2 – 400x + 19600 = 0
x = (400 +/- sqrt (160000-4 * 2 * 19600)) / 4

Como, 1 <= x <= 100, por lo tanto x = (400+ sqrt (160000-4 * 2 * 19600)) / 4
x = 85.85786

El máximo se produce en 85.85 (es posible que desee confirmar en esta x, si la segunda derivada es negativa), pero necesitamos un valor discreto de x según el requisito del juego, de modo que E sea máximo. Para 1 <= x <= 100 solo hay un punto donde la pendiente = 0 que está en x (max) = 85.85, por lo tanto, para el resto del rango debería haber una disminución monotónica en el valor de E a medida que nos alejamos de x (max), es decir que encontraremos nuestro max en x = 86 o x = 85, no hay que preocuparse por el resto del rango.
Aunque 86 está mucho más cerca de x (máximo) que 85, todavía no hay certeza acerca de que la disminución del valor sea menor en 85 u 86 porque es un gráfico no lineal (y el cambio en la pendiente tampoco es constante, y el resto de los derivados más altos también son distintos de cero).

Solo tenemos que calcular E (x = 85) y E (x = 86) y comparar.
E ((x = 86) = 87.35 y E (x = 85) = 87.33

así que la estrategia óptima es detenerse y retirar dinero solo si el dado muestra 87 o más, de lo contrario, siga gastando $ 1 para tirar nuevamente n, lo que lleva a la ganancia esperada de $ 87.35.

Fin de la respuesta.


Para verificar si esto realmente funciona, puede escribir una función / algo para esta estrategia usando la función rand (), para tirar los dados y tomar la cantidad solo si la tirada es mayor que 86. Repita esto un millón de veces y tome el promedio de cantidad para obtener la ganancia esperada. Debería ser alrededor de 87.35.
Pruebe cualquier otra estrategia, si es mejor, que tiene que dar más de 87.35 en promedio, en la simulación.

E Vs X gráfico: el punto rojo es el punto x (máximo).


código de simulación (c ++) para la estrategia:

#include
using namespace std; double ExpectedValue(int x)
{
int amount;
int roll;
double sum_amount = 0; for(int i=0;i<1000000;++i)
{
amount=0; //initial amount = 0
roll = rand()%100+1;
while(roll<=x) //continue while roll<=x
{
amount-=1;
roll = rand()%100+1;
}
amount+=roll;
sum_amount+=amount; //total amount won in the 1000000 simulations
}
return sum_amount/1000000;
} int main()
{
cout<<ExpectedValue(86)<<endl;
return 0;
}

#include
using namespace std; double ExpectedValue(int x)
{
int amount;
int roll;
double sum_amount = 0; for(int i=0;i<1000000;++i)
{
amount=0; //initial amount = 0
roll = rand()%100+1;
while(roll<=x) //continue while roll<=x
{
amount-=1;
roll = rand()%100+1;
}
amount+=roll;
sum_amount+=amount; //total amount won in the 1000000 simulations
}
return sum_amount/1000000;
} int main()
{
cout<<ExpectedValue(86)<<endl;
return 0;
}

#include
using namespace std; double ExpectedValue(int x)
{
int amount;
int roll;
double sum_amount = 0; for(int i=0;i<1000000;++i)
{
amount=0; //initial amount = 0
roll = rand()%100+1;
while(roll<=x) //continue while roll<=x
{
amount-=1;
roll = rand()%100+1;
}
amount+=roll;
sum_amount+=amount; //total amount won in the 1000000 simulations
}
return sum_amount/1000000;
} int main()
{
cout<<ExpectedValue(86)<<endl;
return 0;
}

#include
using namespace std; double ExpectedValue(int x)
{
int amount;
int roll;
double sum_amount = 0; for(int i=0;i<1000000;++i)
{
amount=0; //initial amount = 0
roll = rand()%100+1;
while(roll<=x) //continue while roll<=x
{
amount-=1;
roll = rand()%100+1;
}
amount+=roll;
sum_amount+=amount; //total amount won in the 1000000 simulations
}
return sum_amount/1000000;
} int main()
{
cout<<ExpectedValue(86)<<endl;
return 0;
}


Enfoque alternativo:

Otra, puede ser una forma más intuitiva de ver el problema, es pensar en el número esperado de turnos que tomaría antes de que se detenga el juego. Dado que seguiremos rodando hasta que encontremos una tirada> x con probabilidad = (100-x) / 100, por lo tanto, el número esperado de tiradas que tomaría antes de que termine el juego es 100 / (100 -x), un evento con probabilidad p toma un promedio de 1 / p ensayos para ocurrir.

Entonces, en promedio pagaremos [matemática] \ frac {100} {100-x} – 1 [/ matemática] en tarifa (no hay tarifa para la primera tirada, de ahí el plazo de -1).
Al mismo tiempo, en promedio ganaremos (101 + x) / 2 cantidad en la última ronda, dado que nos detendremos solo si tiramos> x

por lo tanto, la ganancia neta esperada [matemática] E = \ frac {101 + x} {2} – \ left (\ frac {100} {100-x} -1 \ right) [/ math] [math] = \ frac { (100-x) (101 + x) – 2x} {200 – 2x} [/ math], que es la misma ecuación que antes, necesita maximizar E wrtx

Es difícil responder a la estrategia óptima . Como después de cada lanzamiento, la probabilidad de obtener el mejor resultado no se ve afectada y es igual a la probabilidad de obtener el menor resultado. Y si sigues deseando lo mejor para el futuro, habrías desperdiciado muchos dólares hasta entonces. Entonces, tan pronto como obtengas tu deseo, mata tu deseo y empaca.
Deseo ver mejores respuestas matemáticas.

El dinero máximo que uno puede ganar es de $ 100, solo un resultado. $ 99 2 resultados (99 en el primer lanzamiento; n en el primero y 100 en el segundo). Del mismo modo, habrá 3 formas de ganar 98 (98; n, 99; n, n, 100). Se puede trazar una curva de distribución normal con $ 50 en x = 0. Según la teoría, hay una probabilidad máxima (50%) de ganar alrededor de 34-66 es máxima. (1/3 de desviación a cada lado).

Entonces , óptimamente, debe detenerse cuando el no en los dados sea al menos 34 mayor que el no.

Buena pregunta,

Para el caso en el que tiramos el dado nuevamente, pagamos desde nuestro propio bolso, nuestra posibilidad de obtener ganancias después de n tiradas del dado es (100-n) / 100. Como se puede ver, la probabilidad disminuye después de cada lanzamiento. Entonces, desde el punto de vista de la probabilidad, lo mejor es desplegarse una vez, tomar el dinero y volver a casa.