ไพ่คู่
มาใช้การจำลองเพื่อประมาณค่าความน่าจะเป็นกัน สมมติว่าได้รับเชิญไปร่วมเล่นโป๊กเกอร์ที่บ้านเพื่อน ในเกมเวอร์ชันนี้ ผู้เล่นแต่ละคนจะได้รับไพ่ 5 ใบ และผู้ที่มีไพ่ดีกว่าจะเป็นผู้ชนะ เราจะใช้การจำลองเพื่อประมาณความน่าจะเป็นของการได้ไพ่รูปแบบต่าง ๆ โดยในแบบฝึกหัดนี้จะเน้นที่การประมาณความน่าจะเป็นของการได้ไพ่คู่อย่างน้อยหนึ่งคู่ ไพ่คู่หมายถึงการได้ไพ่สองใบที่มีค่าตัวเลขเดียวกันแต่ต่างดอก (เช่น ไพ่ 2 ดอกหัวใจ และ 2 ดอกโพดำ พร้อมกับไพ่อีก 3 ใบที่เหลือ)
เมื่อจบแบบฝึกหัดนี้ จะรู้วิธีใช้การจำลองเพื่อคำนวณความน่าจะเป็นในเกมไพ่
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจำลองทางสถิติด้วย Python
คำแนะนำการฝึกหัด
- แจกไพ่: ในลูป for ให้สับ
deck_of_cardsจากนั้นเลือกไพ่ 5 ใบแรกเป็นhand - นับค่าตัวเลข: ใช้เมธอด
get()เพื่อสร้างพจนานุกรมcards_in_handที่นับจำนวนครั้งที่numeric_valueแต่ละค่าปรากฏในhand - ได้ไพ่คู่หรือไม่? ตรวจสอบว่าค่าสูงสุดใน
cards_in_handมีค่าเท่ากับหรือมากกว่า2เพื่อดูว่าได้ไพ่คู่อย่างน้อยหนึ่งคู่หรือไม่ ถ้าใช่ ให้เพิ่มค่าtwo_kindขึ้น
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Shuffle deck & count card occurrences in the hand
n_sims, two_kind = 10000, 0
for i in range(n_sims):
____
hand, cards_in_hand = deck_of_cards[0:5], {}
for [suite, numeric_value] in hand:
# Count occurrences of each numeric value
cards_in_hand[numeric_value] = cards_in_hand.____(numeric_value, 0) + 1
# Condition for getting at least 2 of a kind
if ____ >=2:
two_kind += 1
print("Probability of seeing at least two of a kind = {} ".format(two_kind/n_sims))