Full house
Wróćmy do naszej gry w pokera. Ostatnio obliczaliśmy prawdopodobieństwo otrzymania co najmniej dwóch kart o tej samej wartości. Tym razem interesuje nas full house. Full house to układ, w którym masz dwie karty różnych kolorów o tej samej wartości liczbowej oraz trzy inne karty o tej samej wartości liczbowej (np. dwójka kier i pik oraz walety trefl, karo i pik).
Full house oznacza zatem prawdopodobieństwo otrzymania dokładnie trzech kart tego samego rodzaju pod warunkiem, że masz dokładnie dwie karty innego rodzaju. Korzystając z poprzedniego kodu, zmodyfikuj warunek sukcesu, aby uzyskać oczekiwany wynik. To ćwiczenie nauczy cię szacowania prawdopodobieństw warunkowych w grach karcianych i pomoże zbudować solidne podstawy w modelowaniu abstrakcyjnych problemów na potrzeby symulacji.
To ćwiczenie jest częścią kursu
Symulacje statystyczne w Pythonie
Instrukcje do ćwiczenia
- Potasuj
deck_of_cards. - Użyj słownika z metodą
.get(), aby zliczyć liczbę wystąpień każdej karty w rozdaniu. - Zwiększ licznik
full_house, gdy w rozdaniu pojawi się full house (2 karty jednego rodzaju i 3 karty drugiego).
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))