ที่สควอชคลับในพื้นที่ของฉันมีบันไดซึ่งทำงานดังต่อไปนี้
- ในตอนต้นของฤดูกาลเราสร้างตารางที่มีชื่อของสมาชิกแต่ละคนของสโมสรในบรรทัดแยกต่างหาก
- จากนั้นเราเขียนจำนวนเกมที่ชนะและจำนวนเกมที่เล่นถัดจากแต่ละชื่อ (ในรูปแบบ: ผู้เล่นชนะ / เกม)
ดังนั้นในตอนต้นของฤดูกาลตารางจะมีลักษณะดังนี้:
Carol 0/0
Billy 0/0
Alice 0/0
Daffyd 0/0
ผู้เล่นสองคนอาจเล่นคู่กับผู้เล่นคนหนึ่งชนะ หากผู้เล่นที่ใกล้ที่สุดด้านล่างของตารางชนะตำแหน่งของผู้เล่นจะเปลี่ยน จากนั้นเราทำซ้ำขั้นตอนที่ 2 อัปเดตจำนวนชัยชนะและเกมถัดจากผู้เล่นแต่ละคน ตัวอย่างเช่นถ้าอลิซชนะบิลลี่เราก็มี
Carol 0/0
Alice 1/1
Billy 0/1
Daffyd 0/0
การแข่งขันเหล่านี้ยังคงดำเนินต่อไปตลอดทั้งฤดูกาล
น่าเสียดายที่การอัปเดตเกิดขึ้นในลักษณะที่ค่อนข้างจับจดดังนั้นจึงเกิดข้อผิดพลาดขึ้น ด้านล่างนี้เป็นตัวอย่างของตารางที่ไม่ถูกต้องกล่าวคือตารางที่ไม่สามารถสร้างได้โดยทำตามขั้นตอนด้านบนอย่างถูกต้องสำหรับบางคำสั่งเริ่มต้น (เราลืมคำสั่งที่เราใช้เมื่อต้นฤดูกาล) และลำดับการแข่งขันและผลลัพธ์:
Alice 0/1
Billy 1/1
Carol 0/1
Daffyd 0/0
Alice 2/3
Billy 0/1
Carol 0/0
Daffyd 0/0
Alice 1/1
Billy 0/2
Carol 2/2
Daffyd 0/1
ให้ตารางเราจะตรวจสอบได้อย่างมีประสิทธิภาพว่ามันถูกต้องอย่างไร เราสามารถเริ่มต้นด้วยการสังเกตสิ่งต่อไปนี้:
ลำดับของชื่อไม่สำคัญเนื่องจากเราลืมคำสั่งเริ่มต้นดั้งเดิม
จำนวนชนะทั้งหมดควรเป็นครึ่งหนึ่งของจำนวนเกมที่เล่นทั้งหมด (นี่แสดงให้เห็นว่าตัวอย่างแรกข้างต้นไม่ถูกต้อง)
- สมมติว่าตารางถูกต้อง แล้วมีmultigraph - กราฟยอมรับขอบหลาย แต่ไม่มีลูป - กับแต่ละจุดสุดยอดที่สอดคล้องกับผู้เล่นและขอบแต่ละการแข่งขันเล่น จากนั้นจำนวนรวมของเกมที่เล่นโดยผู้เล่นแต่ละคนจะสอดคล้องกับระดับของจุดสุดยอดของผู้เล่นในรูปแบบมัลติ ดังนั้นหากไม่มีมัลติริจิคที่มีองศาของจุดยอดที่เหมาะสมตารางจะต้องไม่ถูกต้อง ตัวอย่างเช่นไม่มีมัลติริบก์ที่มีจุดสุดยอดหนึ่งองศาหนึ่งและหนึ่งในสามองศาดังนั้นตัวอย่างที่สองนั้นไม่ถูกต้อง [เราสามารถตรวจสอบการมีอยู่ของงานประดิษฐ์ได้อย่างมีประสิทธิภาพ]
ดังนั้นเราจึงมีการตรวจสอบสองครั้งที่เราสามารถนำไปใช้กับการเริ่มต้นด้วย แต่สิ่งนี้ยังอนุญาตตารางที่ไม่ถูกต้องเช่นตัวอย่างที่สาม หากต้องการดูว่าตารางนี้ไม่ถูกต้องเราสามารถทำงานย้อนกลับหมดวิธีที่เป็นไปได้ทั้งหมดของตารางที่อาจเกิดขึ้น
ฉันสงสัยว่าทุกคนสามารถนึกถึงเวลาพหุนาม (ในจำนวนผู้เล่นและจำนวนของเกม) อัลกอริทึมในการแก้ปัญหาการตัดสินใจนี้หรือไม่?