Full house
Volvamos a nuestro juego de póker. La vez anterior calculamos la probabilidad de obtener al menos una pareja. Esta vez nos interesa un full house. Un full house es cuando obtienes dos cartas de un mismo valor numérico y tres cartas de otro valor numérico (p. ej., 2 de corazones y picas, y jotas de tréboles, diamantes y picas). En este ejercicio no distinguimos palos: solo importa el valor numérico.
Así, un full house es la probabilidad de obtener exactamente un trío condicionado a obtener exactamente una pareja de otro valor. Usando el mismo código que antes, modifica la condición de éxito para obtener el resultado deseado. Este ejercicio te enseñará a estimar probabilidades condicionadas en juegos de cartas y te ayudará a crear una base sólida para plantear problemas abstractos en simulaciones.
Este ejercicio forma parte del curso
Simulación estadística en Python
Instrucciones del ejercicio
- Baraja
deck_of_cards. - Usa un diccionario con
.get()para contar el número de apariciones de cada carta en la mano. - Incrementa el contador
full_housecuando haya un full house en la mano (2 de un valor, 3 de otro).
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Shuffle deck & count card occurrences in the hand
n_sims, full_house, deck_of_cards = 50000, 0, deck.copy()
for i in range(n_sims):
____
hand, cards_in_hand = deck_of_cards[0:5], {}
for card in hand:
# Use .get() method to count occurrences of each card
cards_in_hand[card[1]] = cards_in_hand.____(card[1], 0) + 1
# Condition for getting full house
condition = (max(cards_in_hand.values()) ==3) & (min(cards_in_hand.values())==2)
if condition:
full_house ____
print("Probability of seeing a full house = {}".format(full_house/n_sims))