IniziaInizia gratis

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

Visualizza il corso

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_house quando 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))
Modifica ed esegui il codice