Cù lũ (Full house)
Quay lại với trò poker nhé. Lần trước, bạn đã tính xác suất có ít nhất một đôi. Lần này, chúng ta quan tâm đến cù lũ (full house). Cù lũ là khi bạn có hai lá bài khác chất nhưng cùng giá trị số, và ba lá bài khác (khác chất) cùng một giá trị số khác (ví dụ: 2 cơ & bích, và 3 lá J rô, tép & bích).
Do đó, cù lũ là xác suất rút được đúng ba lá cùng giá trị, với điều kiện đồng thời rút được đúng hai lá cùng một giá trị khác. Sử dụng lại đoạn mã như trước, hãy chỉnh điều kiện thành công để có đầu ra mong muốn. Bài tập này sẽ giúp bạn ước lượng xác suất có điều kiện trong trò chơi bài và xây dựng nền tảng để mô hình hóa các bài toán trừu tượng cho mô phỏng.
Bài tập này là một phần của khóa học
Mô phỏng Thống kê bằng Python
Hướng dẫn bài tập
- Xáo trộn
deck_of_cards. - Dùng một dictionary với
.get()để đếm số lần xuất hiện của mỗi lá bài trong tay. - Tăng biến đếm
full_housekhi trong tay có cù lũ (2 lá cùng giá trị này, 3 lá cùng giá trị khác).
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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))