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

เกมสิบสาม

Pierre Raymond De Montmart นักคณิตศาสตร์ชาวฝรั่งเศสผู้มีชื่อเสียงด้านคณิตศาสตร์เชิงการจัดได้เสนอเกมง่าย ๆ ที่เรียกว่า เกมสิบสาม โดยใช้ไพ่ 13 ใบ ซึ่งมีหมายเลข 1 ถึง 13 กำกับอยู่ จากนั้นสับไพ่แล้วจั่วออกมาทีละใบ "ความบังเอิญ" เกิดขึ้นเมื่อหมายเลขบนไพ่ตรงกับลำดับที่จั่ว เช่น หากไพ่ใบที่ 5 ที่จั่วได้มีหมายเลข 5 พอดี ถือว่าเกิดความบังเอิญ ผู้เล่นจะชนะเกมหากจั่วไพ่ครบทุกใบโดยไม่มีความบังเอิญเกิดขึ้นเลย มาคำนวณความน่าจะเป็นของการชนะเกมนี้โดยใช้การจำลองสถานการณ์กัน

แบบฝึกหัดนี้จะช่วยเสริมทักษะในการแปลงปัญหาเชิงนามธรรมให้อยู่ในกรอบของการจำลองสถานการณ์เพื่อประมาณค่าความน่าจะเป็นได้อย่างคล่องแคล่วยิ่งขึ้น

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

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

ดูคอร์ส

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

  • ในแต่ละรอบการจั่ว ให้จั่วไพ่ ทุกใบ จาก deck โดยไม่ คืนใบที่จั่วแล้ว แล้วกำหนดผลลัพธ์ให้กับ draw
  • ตรวจสอบว่ามีความบังเอิญเกิดขึ้นในการจั่วหรือไม่ ถ้ามี ให้เพิ่มตัวนับ coincidences ขึ้น 1
  • คำนวณความน่าจะเป็นของการชนะในรูปแบบสัดส่วนของเกมที่ไม่มีความบังเอิญเลย แล้วใช้ prob_of_winning เพื่อแสดงผลลัพธ์

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

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

# Pre-set constant variables
deck, sims, coincidences = np.arange(1, 14), 10000, 0

for _ in range(sims):
    # Draw all the cards without replacement to simulate one game
    draw = np.random.choice(____, size=____, replace=____)
    # Check if there are any coincidences
    coincidence = (draw == list(np.arange(1, 14))).any()
    if coincidence == ____: 
        coincidences += 1

# Calculate probability of winning
prob_of_winning = ____
print("Probability of winning = {}".format(____))
แก้ไขและรันโค้ด