Thực hiện trình giải Sudoku ngắn nhất bằng cách đoán. Vì tôi đã nhận được một vài yêu cầu, tôi đã thêm câu hỏi này như một câu hỏi thay thế cho những người muốn thực hiện một người giải sudoku vũ phu.
Câu đố 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
Câu trả lời:
| 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
Quy tắc:
- Giả sử tất cả các mê cung chỉ có thể giải được bằng logic.
- Tất cả đầu vào sẽ dài 81 ký tự. Thiếu ký tự sẽ là 0.
- Xuất ra giải pháp dưới dạng một chuỗi đơn.
- "Lưới" có thể được lưu trữ nội bộ theo cách bạn muốn.
- Các giải pháp phải sử dụng một giải pháp đoán lực lượng vũ phu.
- Giải pháp nên giải quyết trong một giới hạn thời gian hợp lý.
Ví dụ I / O:
>sudoku.py "030001000006000050500000983080006302000050000903800060714000009020000800000400030"
832591674496387251571264983185746392267953418943812765714638529329175846658429137