Full house
Laten we teruggaan naar ons pokerspel. Vorige keer berekenden we de kans op ten minste een pair. Deze keer zijn we geïnteresseerd in een full house. Een full house is wanneer je twee kaarten van verschillende soorten hebt met dezelfde numerieke waarde én drie andere kaarten met dezelfde numerieke waarde (bijv. 2 harten & schoppen, en boeren van klaveren, ruiten & schoppen).
Een full house is dus de kans op precies three of a kind, gegeven dat je precies two of a kind van een andere waarde hebt. Gebruik dezelfde code als eerder en pas de succesvoorwaarde aan om de gewenste output te krijgen. In deze oefening leer je voorwaardelijke kansen in kaartspellen schatten en leg je de basis voor het formuleren van abstracte problemen voor simulatie.
Deze oefening maakt deel uit van de cursus
Statisticale simulatie in Python
Oefeninstructies
- Schud
deck_of_cards. - Gebruik een dictionary met
.get()om het aantal voorkomens van elke kaart in de hand te tellen. - Verhoog de teller
full_housewanneer er een full house in de hand zit (2 van één waarde, 3 van een andere).
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))