การจำลอง Python ของผู้สมัครหญิง: ตอนที่ 1


โพสต์ล่าสุด ฉันอธิบายแบบจำลองสำหรับจำลองผลลัพธ์ของเกมหมากรุก นี่ขึ้นอยู่กับสมมติฐานต่างๆ ประการหนึ่งคือคนผิวขาวได้รับคะแนน 55% ในเกมที่มีการจับคู่เท่ากัน ซึ่งแสดงถึงข้อได้เปรียบ 35 Elo โดยสมมติว่าเป็นโมเดล Elo แบบเอ็กซ์โพเนนเชียลที่ใช้บ่อยที่สุด ข้อสันนิษฐานที่สองคืออัตราต่อรองที่เสมอกันส่งผลให้ได้เปรียบ Elo เป็นสัดส่วนกับเลขชี้กำลังของผลรวมของผู้เล่นแต่ละคน Elos ขึ้นอยู่กับเครื่องคิดเลขออนไลน์ที่ใช้กันอย่างแพร่หลาย ซึ่งอ้างว่าอัตราต่อรองในการเสมอกันมีค่าเท่ากับ 0.6 เบี้ย และโอกาสในการชนะที่ได้จากเบี้ยเพิ่มเติมนั้นเป็นฟังก์ชันเลขชี้กำลังของผู้เล่นโดยเฉลี่ย Elo ดังนั้นสมมติว่าอัตราต่อรองเสมอสะท้อนถึงโอกาสที่เสมอกันในเกมที่ไม่มีอัตราต่อรองเสมอกัน สิ่งนี้ทำให้สามารถคำนวณอัตราต่อรองได้

ฉันแก้ไขการจำลองเกมเพื่อให้ผลลัพธ์เป็น 1 (ขาวชนะ), 1/2 (เสมอ) หรือ 0 (ชนะดำ) สิ่งนี้ทำให้ฉันสามารถรวมคะแนนสำหรับทัวร์นาเมนต์ได้อย่างง่ายดาย รหัสจะส่งคืนคะแนนที่คนขาวได้รับ แต้มที่คนดำชนะคือ 1 – แต้มที่คนขาวชนะ

รหัสจำลองเกม
แดเนียล คอนเนลลี djconnel@gmail.com

ด้วยรหัสเกม ฉันสามารถจำลองการแข่งขันแบบพบกันหมดแบบพบกันหมดได้ ในการเล่นแบบพบกันหมดแบบคู่ ผู้เล่นจะเล่นกันเองสองครั้ง และจะมีการรวมคะแนน ถ้าเสมอกัน ก็ต้องไทเบรก ฉันยังไม่ได้คำนวณไทเบรกเลย

รหัสโรบินกลมคู่
แดเนียล คอนเนลลี djconnel@gmail.com

โปรดทราบว่านี่จะเล่นสองเกมต่อการจับคู่ สีขาวและสีดำจะถูกสลับกันหลังแต่ละเกม ด้วยสองเกม ผู้เล่นแต่ละคนจะเล่นกันเองโดยครั้งหนึ่งเป็นสีขาว และครั้งหนึ่งเป็นสีดำ

จากนั้นฉันต้องพิมพ์ผลการแข่งขันออกมา นี่คือโค้ดบางส่วนที่ต้องทำ:

ตอนนี้ฉันสามารถนำไปใช้กับกรณีเฉพาะได้ ที่นี่ฉันใช้การแข่งขันผู้สมัครหญิง โดยฉันใช้ Elos ที่พบในเว็บไซต์สุ่ม

รหัสผู้สมัครหญิง
แดน คอนเนลลี djconnel@gmail.com

ฉันสามารถเรียกใช้สิ่งนี้เพื่อให้ได้ผลลัพธ์โดยทั่วไป:

ผลการแข่งขันผู้สมัครหญิง
แดเนียล คอนเนลลี djconnel@gmail.com

ดังนั้นจึงจำเป็นต้องทำภารกิจเพิ่มเติมสองอย่างที่นี่ หนึ่งคือการจัดการไทเบรก อีกประการหนึ่งคือจัดทัวร์นาเมนต์หลายครั้งเพื่อรับสถิติ ฉันคิดว่าการแข่งขันซ้ำล้านครั้งนั้นสมเหตุสมผล สำหรับสถิติที่ดี ฉันต้องการให้ผู้เล่นแต่ละคนชนะทัวร์นาเมนต์จำลองอย่างน้อย 1,000 ครั้ง ดังนั้นหากผู้เล่นมีโอกาส 1/1000 เพื่อชนะ 1,000 ครั้ง ฉันจำเป็นต้องทำซ้ำล้านครั้ง

ฉันจะดูสิ่งเหล่านี้ในครั้งต่อไป



Source link