ตัวแก้ Sudoku แบบบรรทัดเดียวของ Arthur Whitney (2011)
(dfns.dyalog.com)อัลกอริทึมแก้ปัญหา Sudoku
-
คำอธิบายปัญหา Sudoku
- ปริศนา Sudoku ประกอบด้วยกล่องขนาด 3×3 จำนวน 9 กล่องในกริด 3×3 โดยแต่ละช่องอาจว่างเปล่าหรือมีตัวเลขตั้งแต่ 1 ถึง 9
- ในแต่ละกล่อง 3×3, แถวทั้ง 9 แถว และคอลัมน์ทั้ง 9 คอลัมน์ ต้องมีตัวเลข 9 ตัวโดยไม่ซ้ำกัน
- มีการยกตัวอย่างโจทย์และวิธีแก้ไว้ให้
-
ภาพรวมของอัลกอริทึม
- ประมวลผลเมทริกซ์เป็นเวกเตอร์ และแสดงแถว คอลัมน์ และพื้นที่ของ Sudoku ด้วยเวกเตอร์ดัชนี
- ตรวจสอบพื้นฐานของปริศนา และกรององค์ประกอบที่เป็นไปได้เพื่อค้นหาคำตอบ
- หากช่องว่างอยู่ จะย้ายไปยังรายการถัดไป และหากช่องมีตัวเลขได้หลายค่า จะเลือกจากกลุ่มที่แคบที่สุดแล้วเพิ่มลงในรายการ
- หากทุกช่องมีตัวเลขเพียงค่าเดียว แสดงว่าพบคำตอบแล้ว
-
บันทึกทางเทคนิค
- เป็นโซลูชันที่ Veli-Matti Jantunen นำเสนอ โดยสามารถใช้ ⍺ เพื่อแทนสี่เหลี่ยมของ Sudoku ได้
- ผลลัพธ์จะคืนค่าเป็นเวกเตอร์ของคำตอบทั้งหมด, เป็น ⍬ หากไม่มีคำตอบ, และเป็น '' หากมีข้อผิดพลาด
- อัลกอริทึมนั้นเรียบง่าย โดยประมวลผลเมทริกซ์เป็นเวกเตอร์และกรององค์ประกอบที่เป็นไปได้เพื่อค้นหาคำตอบ
-
แนวทางอื่น
- มีการนำเสนอการเขียนโค้ดทางเลือกของ David Crossley และ Arthur Whitney
- มีการอธิบายรูปแบบการเขียนโค้ดและแนวทางที่หลากหลาย
-
ตัวอย่างและการใช้งาน
- มีตัวอย่างหลากหลายในการแก้ปัญหา Sudoku
- ยังมีฟังก์ชันสำหรับแยกกล่องภายในเพื่อให้อ่านโจทย์ Sudoku ได้ง่ายขึ้น
สรุปโดย GN⁺
- มีการแนะนำอัลกอริทึมและสไตล์การเขียนโค้ดที่หลากหลายสำหรับการแก้ปัญหา Sudoku
- ปริศนา Sudoku มีประโยชน์ในการพัฒนาการคิดเชิงตรรกะและความสามารถในการแก้ปัญหา
- แนวทางที่หลากหลายช่วยเพิ่มความยืดหยุ่นในการแก้ปัญหา
- ปริศนาที่มีลักษณะคล้าย Sudoku และน่าสนใจเช่น Kakuro, KenKen
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News