Full house
Să revenim la jocul nostru de poker. Data trecută, am calculat probabilitatea de a obține cel puțin o pereche. De data aceasta, suntem interesați de un full house. Un full house înseamnă că ai două cărți de culori diferite cu aceeași valoare numerică și alte trei cărți care au aceeași valoare numerică (de exemplu, 2 de inimi și 2 de pică, plus valeți de treflă, caro și pică).
Așadar, un full house reprezintă probabilitatea de a obține exact trei cărți de același fel, condiționată de obținerea a exact două cărți de același fel dintr-o altă valoare. Folosind același cod ca înainte, modifică condiția de succes pentru a obține rezultatul dorit. Acest exercițiu te va ajuta să estimezi probabilități condiționate în jocurile de cărți și să îți consolidezi baza pentru formularea problemelor abstracte în simulări.
Acest exercițiu face parte din cursul
Simulare statistică în Python
Instrucțiuni pentru exercițiu
- Amestecă
deck_of_cards. - Folosește un dicționar cu
.get()pentru a număra aparițiile fiecărei cărți din mână. - Incrementează contorul
full_houseatunci când există un full house în mână (2 cărți de un fel, 3 de celălalt).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))