(แม้จะมี 60 คำถามที่ติดแท็กหมากรุก , เราไม่ได้มีง่ายๆ n-Queens ท้าทาย.)
ในหมากรุกตัวต่อปริศนา N-Queensอธิบายดังต่อไปนี้: ให้n x n
กระดานหมากรุกและn
ควีนส์จัดเรียงราชินีเข้าสู่กระดานหมากรุกเพื่อไม่ให้ราชินีทั้งสองกำลังคุกคามกัน ด้านล่างนี้เป็นตัวอย่างโซลูชันสำหรับn = 8
ยืมมาจาก Wikipedia
หรือในการแสดงผล ASCII:
xxxQxxxx
xxxxxxQx
xxQxxxxx
xxxxxxxQ
xQxxxxxx
xxxxQxxx
Qxxxxxxx
xxxxxQxx
ความท้าทายในที่นี้คือการนำอินพุตn
และเอาต์พุตการแสดง ASCII ของโซลูชันไปยังn
ปริศนา -Queens เนื่องจากมีวิธีแก้ปัญหาที่เป็นไปได้มากกว่าหนึ่งรายการ (เช่นอย่างน้อยที่สุดการหมุนหรือการสะท้อนกลับ) รหัสของคุณจึงจำเป็นต้องแสดงทางออกที่ถูกต้องเท่านั้น
อินพุต
เป็นจำนวนเต็มบวกเดียวn
กับในรูปแบบที่สะดวกใดn >= 4
ๆ (n = 2 และ n = 3 ไม่มีวิธีแก้ปัญหาและ n = 1 เป็นเรื่องเล็กน้อยดังนั้นสิ่งเหล่านี้จึงถูกยกเว้น)
เอาท์พุต
การแทนค่า ASCII ที่เป็นผลลัพธ์ของโซลูชันไปยังตัวไขปริศนา N-queens ดังที่อธิบายไว้ข้างต้น คุณสามารถเลือกค่า ASCII ที่แตกต่างกันสองค่าเพื่อแสดงถึงช่องว่างและควีน อีกครั้งนี้สามารถส่งออกในรูปแบบที่เหมาะสมใด ๆ (สตริงเดียวรายการของสตริงอาร์เรย์ตัวละคร ฯลฯ )
กฎระเบียบ
- ขึ้นบรรทัดใหม่หรือต่อท้ายช่องว่างหรือเว้นวรรคเป็นทางเลือกทั้งหมดรวมทั้งช่องว่างระหว่างตัวอักษรตราบใดที่ตัวอักษรอยู่ในแถวอย่างถูกต้อง
- คุณสามารถใช้อัลกอริทึมในการคำนวณตำแหน่งที่เป็นไปได้หรือใช้รูปแบบการแก้ปัญหา "บันไดขั้นตอน" อย่างชัดเจนไม่ว่าจะเป็นรูปแบบใดสำหรับนักกอล์ฟของคุณ
- ยอมรับได้ทั้งโปรแกรมหรือฟังก์ชั่น หากฟังก์ชั่นคุณสามารถส่งคืนผลลัพธ์มากกว่าการพิมพ์
- หากเป็นไปได้โปรดรวมลิงค์ไปยังสภาพแวดล้อมการทดสอบออนไลน์เพื่อให้ผู้อื่นสามารถลองใช้รหัสของคุณได้!
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- นี่คือรหัส - กอล์ฟเพื่อให้ใช้กฎการเล่นกอล์ฟตามปกติทั้งหมดและรหัสที่สั้นที่สุด (เป็นไบต์) ชนะ
ตัวอย่าง
n=4
xQxx
xxxQ
Qxxx
xxQx
n=7
xxQxxxx
xxxxxxQ
xQxxxxx
xxxQxxx
xxxxxQx
Qxxxxxx
xxxxQxx
n=10
xxxxQxxxxx
xxxxxxxxxQ
xxxQxxxxxx
xxxxxxxxQx
xxQxxxxxxx
xxxxxxxQxx
xQxxxxxxxx
xxxxxxQxxx
Qxxxxxxxxx
xxxxxQxxxx