Full house
Torniamo al nostro gioco di poker. La volta scorsa, abbiamo calcolato la probabilità di ottenere almeno una coppia. Questa volta ci interessa un full house. Un full house si ha quando ottieni due carte di semi diversi con lo stesso valore numerico e altre tre carte che condividono un altro valore numerico (ad esempio, 2 di cuori e di picche, e jack di fiori, quadri e picche).
Quindi, un full house è la probabilità di ottenere esattamente un tris condizionata all’ottenimento di esattamente una coppia di un altro valore. Usando lo stesso codice di prima, modifica la condizione di successo per ottenere l’output desiderato. Questo esercizio ti insegnerà a stimare probabilità condizionate nei giochi di carte e ti aiuterà a costruire le basi per impostare problemi astratti da simulare.
Questo esercizio fa parte del corso
Simulazione statistica in Python
Istruzioni dell'esercizio
- Mescola
deck_of_cards. - Usa un dizionario con
.get()per contare quante volte compare ciascuna carta nella mano. - Incrementa il contatore
full_housequando nella mano c’è un full house (2 di un tipo, 3 dell’altro).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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))