manselmi/sudoku-solver · 文件
文件最后提交记录最后更新时间
README.md
Sudoku solver
Summary
The script sudoku-solver.py solves Sudoku puzzles.
Prerequisites
mise exec -- pixi shell
Usage
./sudoku-solver.py --help
usage: sudoku-solver.py [-h] [--output-dir OUTPUT_DIR] [--sep SEP] [--solution-limit SOLUTION_LIMIT] INPUT_FILE
positional arguments:
INPUT_FILE Sudoku puzzle will be read from this file
options:
-h, --help show this help message and exit
--output-dir OUTPUT_DIR
Sudoku puzzle solutions will be written to this directory (default: output)
--sep SEP separator delimiting values within a row (input and output) (default: ,)
--solution-limit SOLUTION_LIMIT
limit the number of solutions to this value (0 for no limit) (default: 1)
Examples
Feasible
cat -- feasible.csv
5,3,,,7,,,,
6,,,1,9,5,,,
,9,8,,,,,6,
8,,,,6,,,,3
4,,,8,,3,,,1
7,,,,2,,,,6
,6,,,,,2,8,
,,,4,1,9,,,5
,,,,8,,,7,9
./sudoku-solver.py -- feasible.csv
Status: OPTIMAL
Solutions found: 1
Wall time: 0.001425
Branches: 0
Conflicts: 0
column -t -s , -- output/0.csv
5 3 4 6 7 8 9 1 2
6 7 2 1 9 5 3 4 8
1 9 8 3 4 2 5 6 7
8 5 9 7 6 1 4 2 3
4 2 6 8 5 3 7 9 1
7 1 3 9 2 4 8 5 6
9 6 1 5 3 7 2 8 4
2 8 7 4 1 9 6 3 5
3 4 5 2 8 6 1 7 9
Infeasible
cat -- infeasible.csv
8,3,,,7,,,,
6,,,1,9,5,,,
,9,8,,,,,6,
8,,,,6,,,,3
4,,,8,,3,,,1
7,,,,2,,,,6
,6,,,,,2,8,
,,,4,1,9,,,5
,,,,8,,,7,9
./sudoku-solver.py -- infeasible.csv
Status: INFEASIBLE
Solutions found: 0
Wall time: 0.000146
Branches: 0
Conflicts: 0
Blank 4x4
cat -- blank-4x4.csv
,,,
,,,
,,,
,,,
./sudoku-solver.py --solution-limit 0 -- blank-4x4.csv
Status: OPTIMAL
Solutions found: 288
Wall time: 0.034108
Branches: 3571
Conflicts: 35
ls -1b -- output/*.csv | wc -l
# 288