Full house
Poker oyunumuza geri dönelim. Geçen sefer, en az iki aynı değerden kart gelme olasılığını hesaplamıştık. Bu kez ilgilendiğimiz şey bir full house. Full house, aynı sayısal değere sahip ve farklı gruptan (kupa, maça, karo, sinek) iki kart ile, aynı sayısal değere sahip üç başka kart çektiğinde oluşur (örneğin, 2 kupa ve 2 maça; ayrıca vale karo, vale sinek ve vale maça).
Dolayısıyla, full house, başka bir değerden tam olarak iki aynı kart gelmişken, tam olarak üç aynı kart gelmesi koşullu olasılığıdır. Öncekiyle aynı kodu kullanarak, başarı koşulunu istediğin çıktıyı alacak şekilde değiştir. Bu egzersiz, iskambil oyunlarında koşullu olasılıkları tahmin etmeyi ve simülasyon için soyut problemleri çerçeveleme konusunda temelini güçlendirmeyi öğretecek.
Bu egzersiz
Python'da İstatistiksel Benzetim
kursunun bir parçasıdırEgzersiz talimatları
deck_of_cards'ı karıştır.- Elde her kartın kaç kez geçtiğini saymak için
.get()kullanan bir sözlükten yararlan. - Elde full house olduğunda (bir değerden 2 kart, diğer değerden 3 kart)
full_housesayaçını artır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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))