เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ฟูลเฮาส์

กลับมาที่เกมโป๊กเกอร์กันอีกครั้ง ครั้งที่แล้วเราคำนวณความน่าจะเป็นของการได้ไพ่คู่อย่างน้อยหนึ่งคู่ คราวนี้เราสนใจเรื่องฟูลเฮาส์ ฟูลเฮาส์คือการได้ไพ่ 2 ใบที่มีเลขเดียวกันแต่ต่างสัญลักษณ์ และไพ่อีก 3 ใบที่มีเลขเดียวกัน (เช่น ไพ่ 2 หัวใจและ 2 โพดำ พร้อมกับ J ดอกจิก J ข้าวหลามตัด และ J โพดำ)

ดังนั้น ฟูลเฮาส์คือความน่าจะเป็นของการได้ไพ่ตรง 3 ใบ โดยมีเงื่อนไขว่าต้องได้ไพ่ตรง 2 ใบของค่าอื่นด้วย ให้ใช้โค้ดเดิมแล้วแก้ไขเงื่อนไขความสำเร็จเพื่อให้ได้ผลลัพธ์ที่ต้องการ แบบฝึกหัดนี้จะช่วยให้คุณประมาณความน่าจะเป็นแบบมีเงื่อนไขในเกมไพ่ และวางรากฐานในการสร้างแบบจำลองสำหรับปัญหาที่เป็นนามธรรม

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การจำลองทางสถิติด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สับ deck_of_cards
  • ใช้ dictionary ร่วมกับ .get() เพื่อนับจำนวนการปรากฏของไพ่แต่ละใบในมือ
  • เพิ่มค่าตัวนับ full_house เมื่อมือไพ่นั้นเป็นฟูลเฮาส์ (ไพ่ตรง 2 ใบหนึ่งค่า และไพ่ตรง 3 ใบอีกค่าหนึ่ง)

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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))
แก้ไขและรันโค้ด