Kåk
Vi återvänder till pokerspelet. Förra gången beräknade vi sannolikheten för att få minst ett par. Den här gången är vi intresserade av kåk. En kåk innebär att du får två kort av olika färger med samma valör och tre andra kort med samma valör (t.ex. hjärter 2 och spader 2, samt klöver knekt, ruter knekt och spader knekt).
En kåk är alltså sannolikheten för att få exakt tretal, givet att du redan har ett par av en annan valör. Använd samma kod som tidigare och ändra villkoret för ett lyckat utfall för att få önskat resultat. Den här övningen lär dig att uppskatta betingade sannolikheter i kortspel och bygger upp din förmåga att formulera abstrakta problem för simulering.
Den här övningen är en del av kursen
Statistisk simulering i Python
Övningsinstruktioner
- Blanda
deck_of_cards. - Använd en ordbok med
.get()för att räkna antalet förekomster av varje kort i handen. - Öka räknaren
full_housenär det finns en kåk i handen (2 av en valör, 3 av en annan).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))