คำถามติดแท็ก sudoku

ความท้าทายนี้เกี่ยวข้องโดยตรงกับการแก้สร้างหรือการทำงานกับปริศนาซูโดกุ

2
Y-Wing Strategy สำหรับ Sudoku
ฉันเพิ่งได้แอป Sudoku ใหม่ที่ผลิตยากของ Sudoku ซึ่งไม่สามารถแก้ไขได้ด้วยกลยุทธ์มาตรฐาน ดังนั้นฉันต้องเรียนรู้ใหม่ ๆ หนึ่งในกลยุทธ์เหล่านี้เป็นY-Wing กลยุทธ์ มันถูกจัดอันดับภายใต้ "กลยุทธ์ที่ยากลำบาก" แต่จริงๆแล้วมันไม่ได้ยากขนาดนั้น ตัวอย่าง สำหรับกลยุทธ์นี้มีเพียง 4 เซลล์เท่านั้นที่มีความสำคัญ ดังนั้นฉันจึงไม่สนใจเซลล์อื่นทั้งหมดในภาพ เราดูผู้สมัครทั้งหมดสำหรับแต่ละเซลล์ ในตัวอย่างต่อไปนี้เรามีมือถือที่มีผู้สมัครที่3 7(นั่นหมายความว่าเราได้ปฏิเสธไปแล้วผู้สมัคร1 2 4 5 6 8 9เช่นเพราะมี1ในแถวเดียวกัน2ในเดียวกันกล่อง 3x3, ... ), มือถือที่มีผู้สมัคร6 7, เซลล์ที่มีตัวเลือก3 6และเซลล์ที่มีตัว2 6เลือก กลยุทธ์ Y-Wing จะแนะนำว่า6สามารถลบออกจากผู้สมัครของเซลล์อย่างจริงจังปล่อยให้เป็นเพียง2ผู้สมัครซึ่งคุณสามารถกรอกดังนั้นเราจึงพบจำนวนที่ถูกต้องและเป็นหนึ่งในการแก้ซูโดกุเต็มขั้น ทำไมถึง6ถูกลบ? คำอธิบาย ขอให้เราสมมติว่า6จำนวนที่ถูกต้องสำหรับเซลล์อย่างจริงจัง ขณะนี้มี6คอลัมน์อยู่ในคอลัมน์นี้ดังนั้นเราจึงสามารถลบออก6จากผู้สมัครของเซลล์ด้านบนขวาเหลือเพียง a 7ซึ่งเราสามารถกรอกได้สิ่งเดียวกันนี้เกิดขึ้นกับเซลล์ด้านซ้าย เราสามารถลบและกรอกข้อมูลใน6 3ตอนนี้ถ้าเราดูที่เซลล์ด้านบนซ้ายเราจะได้รับความขัดแย้ง เพราะตอนนี้มีอยู่แล้ว7ในแถวเดียวกันและ3ในคอลัมน์เดียวกันเพื่อให้เราสามารถลบ7และ3ของผู้สมัครออกจากผู้สมัครที่ไม่ทั้งหมด ซึ่งเห็นได้ชัดว่าเป็นไปไม่ได้ ดังนั้น 6 ไม่สามารถเป็นจำนวนที่ถูกต้องของเซลล์อย่างจริงจัง …
11 code-golf  sudoku 

1
มีตัวต่อซูโดกุกี่ตัว?
นี่ไม่ใช่ตัวแก้ Sudoku หรือตัวตรวจสอบ Sudoku ความท้าทายของคุณคือการเขียนฟังก์ชั่นหรือสคริปต์ที่ป้อนขนาด "บล็อก" ของปริศนา Sudoku 2D (ซึ่งเป็น 3 สำหรับบอร์ด 9x9 แบบคลาสสิก 4 สำหรับบอร์ด 16x16เป็นต้น) จะคำนวณจำนวนโดยประมาณ ของปริศนาที่แตกต่างกัน (โซลูชัน) ที่มีอยู่สำหรับขนาดนั้น ตัวอย่างเช่นการป้อนข้อมูลที่กำหนด 3 โปรแกรมของคุณควรพิมพ์การประมาณเพื่อความแม่นยำที่ต้องการของจำนวน 6,670,903,752,021,072,972,936,960 ซึ่งเป็นจำนวนที่รู้จักกันของปริศนาซูโดกุ 9x9 ที่แตกต่างกันหรือ 5,472,730,538 เมื่อคำนึงถึงความสมมาตรต่างๆ วิธีการแก้ปัญหาของคุณควรระบุว่าจะนับหรือละเว้นสมมาตร "ความแม่นยำที่ต้องการ" ถูกทิ้งไว้โดยไม่ได้กำหนด: โปรแกรมของคุณอาจทำงานตามเวลาที่กำหนดจากนั้นให้ผลลัพธ์ออกมาหรือคำนวณให้ได้ตามจำนวนตัวเลขที่มีนัยสำคัญหรือแม้แต่เรียกใช้ตลอดไปพิมพ์ที่ดีขึ้นและดีขึ้นโดยประมาณ ประเด็นก็คือมันควรจะเป็นไปได้ที่จะทำให้มันคำนวณผลลัพธ์เพื่อความแม่นยำที่จำเป็นใด ๆ ในเวลาที่ จำกัด (ดังนั้น "42" จึงไม่ใช่คำตอบที่ยอมรับได้) การ จำกัด ความแม่นยำของผลลัพธ์ของคุณกับการลอยของเครื่องที่มีอยู่จึงเป็นที่ยอมรับ ไม่มีการเข้าถึงทรัพยากรออนไลน์ไม่มีการจัดเก็บซอร์สโค้ดในชื่อไฟล์ ฯลฯ PS: ฉันรู้ว่านี่เป็นปัญหาที่ยาก (NP- สมบูรณ์ถ้าฉันไม่ผิดพลาด) …

3
สร้างนักฆ่า Sudoku Solver
คุณคิดว่าซูโดกุประจำนั้นยากตอนนี้ลองKiller Sudoku ! ในเกม Killer Sudoku คุณจะไม่ได้รับหมายเลขใด ๆ เลย แต่คุณจะได้รับภูมิภาคที่ถูกกล่าวเพิ่มขึ้นเป็นจำนวนหนึ่งแทน ลองพิจารณาตัวอย่างต่อไปนี้จาก Wikipedia: และวิธีการแก้ปัญหา: โปรแกรมที่คุณเขียนจะอยู่ในรูปแบบที่ประกอบด้วยลำดับ 81 ตัวอักษรที่แสดงถึงภูมิภาคตามด้วยตัวเลข จากนั้นแต่ละหมายเลขในลำดับจะแสดงผลรวมของตัวเลขในแต่ละภูมิภาคของตัวอักษรเริ่มต้นจาก "A", "B" เป็นต้น จากนั้นจะส่งออกลำดับ 81 หลักที่เป็นตัวแทนของการแก้ปัญหา ตัวอย่างเช่นตัวต่อตัวอย่างด้านบนจะมีอินพุตต่อไปนี้: AABBBCDEFGGHHCCDEFGGIICJKKFLMMINJKOFLPPQNJOORSPTQNUVVRSTTQWUUXXSYZWWaaXXSYZWbbbcc 3 15 22 4 16 15 25 17 9 8 20 6 14 17 17 13 20 12 27 6 20 6 10 14 8 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.