Zacznij terazZacznij za darmo

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

Zobacz kurs

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))
Edytuj i uruchom kod