ใช้ตัวแก้ Sudoku ที่สั้นที่สุด
ปริศนา Sudoku:
| 1 2 3 | 4 5 6 | 7 8 9
-+-----------------------
A| 3 | 1 |
B| 6 | | 5
C| 5 | | 9 8 3
-+-----------------------
D| 8 | 6 | 3 2
E| | 5 |
F| 9 3 | 8 | 6
-+-----------------------
G| 7 1 4 | | 9
H| 2 | | 8
I| | 4 | 3
ตอบ:
| 1 2 3 | 4 5 6 | 7 8 9
-+-----------------------
A| 8 3 2 | 5 9 1 | 6 7 4
B| 4 9 6 | 3 8 7 | 2 5 1
C| 5 7 1 | 2 6 4 | 9 8 3
-+-----------------------
D| 1 8 5 | 7 4 6 | 3 9 2
E| 2 6 7 | 9 5 3 | 4 1 8
F| 9 4 3 | 8 1 2 | 7 6 5
-+-----------------------
G| 7 1 4 | 6 3 8 | 5 2 9
H| 3 2 9 | 1 7 5 | 8 4 6
I| 6 5 8 | 4 2 9 | 1 3 7
กฎ:
- สมมติว่าเขาวงกตทั้งหมดสามารถแก้ไขได้ด้วยตรรกะเท่านั้น
- อินพุตทั้งหมดจะมีความยาว 81 ตัวอักษร อักขระที่หายไปจะเป็น 0
- เอาต์พุตโซลูชันเป็นสตริงเดี่ยว
- "กริด" อาจถูกเก็บไว้ภายใน แต่คุณต้องการ
- โซลูชันต้องใช้โซลูชันที่ไม่คาดเดา (ดูSudoku Solver )
ตัวอย่าง I / O:
>sudoku.py "030001000006000050500000983080006302000050000903800060714000009020000800000400030"
832591674496387251571264983185746392267953418943812765714638529329175846658429137
คุณควรเพิ่มการ จำกัด เวลาจริงๆ
—
JPvdMerwe
@JPvdMerwe: จุดดี แต่การ จำกัด เวลาจะยากที่จะสร้างมาตรฐาน
—
snmcdonald
@gnibbler: อาจเคยทำมาก่อน (แต่ไม่ใช่ codegolf.se) ฉันคิดว่ามันจะยังสนุกที่จะแก้ไขและเพิ่มคุณค่าให้กับชุมชน
—
snmcdonald
ฉันชอบอันนี้ ฉันลังเลที่จะลองใช้วิธีแก้ปัญหากอล์ฟจริง ๆ และฉันก็คิดที่จะเขียนแก้ปัญหา Sudoku (ดูเหมือนการออกกำลังกายที่สนุก) ฉันคิดว่ามันเป็นสิ่งที่คนอย่างฉันที่ไม่เคยเล่นกอล์ฟมาก่อนสามารถใช้เป็นจุดกระโดดได้ และเมื่อฉันเกิดขึ้นกับฉันฉันอาจเล่นกอล์ฟ
—
Andy
ปัญหา "แก้ไขได้ด้วยตรรกะเท่านั้น" นั้นคลุมเครือมาก คุณหมายถึงอาจใช้เพียงขั้นตอนพื้นฐานของ a) การเขียนค่าในเซลล์ที่ค่าไม่ได้อยู่ในแถวคอลัมน์และบล็อก b) การระบุหมายเลขที่สามารถไปในที่เดียวในแถวคอลัมน์ หรือบล็อกและเขียนที่นั่นหรือ
—
xnor