本题目包括两个步骤:(1)数独题目生成 generator.py;(2)数独题目 自动求解 solve.py 1. 数独题目生成(请严格按照命令行参数实现-N, -H, -o 等,下同): python generator.py -N 9 -H 10 -S 1 -o x.txt python generator.py -N 16 -H 10 -S 1 -o x.xlsx 说明:参数 N 取 4,9,16,表示整个数独是多少行列,参数 H 表示题目中 空洞数,若 H 过大,导致数独谜题无唯一答案,则给出保证此谜题唯一答 案的最大空洞数情形即可;参数-S 表示一次生成多少个不同的数独, 参数 o 指定文件输出(支持 txt 和 excel,根据文件后缀决定, 数独谜题空洞处填 0. 2. 自动求解数独 python solve.py -i x.txt -s 1 python solve.py -i x.xlsx -s 1 说明:从文件读入,x.txt 或 x.xlsx,结果显示在屏幕上;-i 表示输入文件 名,-s 表示读入文件中第几个数独(从 1 开始计数) 其他:(1)鼓励自由发挥提供图形界面;(2)上述数独题目生成和自动求解数独中,默认是生成 1 个题目,文件中也默认存储 1 个题目。帮我写出这一道题目符合条件的两个python代码,并在重要代码后添上中文注释
时间: 2023-03-09 19:43:53 浏览: 76
生成器代码:python generator.py -N 9 -H 10 -S 1 -o x.txt
# -N 表示整个数独是九行九列,-H 表示题目中空洞数,-S 表示一次生成多少个不同的数独,-o 表示文件输出,由文件后缀决定,数独空洞处填 0求解器代码:python solve.py -i x.txt -s 1
# -i 表示输入文件名,-s 表示读入文件中第几个数独,从 1 开始计数,结果显示在屏幕上。
相关问题
本题目包括两个步骤:(1)数独题目生成 generator.py;(2)数独题目 自动求解 solve.py 1. 数独题目生成(请严格按照命令行参数实现-N, -H, -o 等,下同): python generator.py -N 9 -H 10 -S 1 -o x.txt python generator.py -N 16 -H 10 -S 1 -o x.xlsx 说明:参数 N 取 4,9,16,表示整个数独是多少行列,参数 H 表示题目中 空洞数,若 H 过大,导致数独谜题无唯一答案,则给出保证此谜题唯一答 案的最大空洞数情形即可;参数-S 表示一次生成多少个不同的数独, 参数 o 指定文件输出(支持 txt 和 excel,根据文件后缀决定, 数独谜题空洞处填 0. 2. 自动求解数独 python solve.py -i x.txt -s 1 python solve.py -i x.xlsx -s 1 说明:从文件读入,x.txt 或 x.xlsx,结果显示在屏幕上;-i 表示输入文件 名,-s 表示读入文件中第几个数独(从 1 开始计数) 其他:(1)鼓励自由发挥提供图形界面;(2)上述数独题目生成和自动求解数独中,默认是生成 1 个题目,文件中也默认存储 1 个题目。帮我写出这一道题目符合条件的两个代码,并在重要代码后添上中文注释
数独题目生成:python generator.py -N 9 -H 10 -S 1 -o x.txt # 以文本文件的形式生成9x9的数独题目,题目中空洞数为10,生成1个题目,输出文件为x.txt数独题目自动求解:python solve.py -i x.txt -s 1 # 以文本文件的形式读入x.txt,从中读取第1个数独题目,自动求解并显示结果在屏幕上。
java生成数独题目
生成数独题目的方法可以通过编程语言Java来实现。为了生成一个合法的数独题目,需要确保以下条件:
1. 没有重复的数字出现在每一行、每一列和每一个3x3的九宫格中;
2. 开始时,数独题目中预填的数字(已知的数字)应该保证唯一性;
3. 生成的数独题目应该有唯一解。
首先,可以创建一个9x9的二维数组,用于表示数独的九宫格。然后,通过递归的方式填充九宫格。
具体实现可以按照以下步骤进行:
1. 创建一个递归函数 `solveSudoku()`,用于填充九宫格中的数字;
2. 在递归函数中,首先判断数独题目是否已经填充完毕(即所有的空格都已经填入数字),如果是则返回 true;
3. 遍历九宫格中的空格,找到第一个没有数字的格子;
4. 对该格子尝试填入数字 1-9,判断是否合法(即是否满足数独的要求);
5. 如果填入的数字合法,则递归调用 `solveSudoku()` 函数继续填充下一个格子;
6. 如果填入的数字不合法,则尝试下一个数字,直到找到合法的数字或者遍历完所有数字;
7. 如果所有数字都尝试过,都不合法,则返回 false,同时回溯到上一个格子;
8. 当递归函数返回 true 时,表示已经成功填充了所有的格子,并且生成了一个合法的数独题目。
通过以上的步骤,就可以使用Java来生成一个合法的数独题目。具体的代码可以根据上述思路进行编写。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ipynb](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)