下面图片里面的是什么数独游戏题目求解

(原题)上面是原题,我已经把这题解成这样了,但不知道用什么方法找下一个解,求教(不需要解题,只要说可以用什么方法找下一个解就好了)...

上面是原题,我已经把这题解成这样了,但不知道用什么方法找下一个解,求教(不需要解题,只要说可以用什么方法找下一个解就好了)

    先看第二排,先差2个空,是3和8,位置不确定,但是知道是这两个数

    那么左上的宫九格其他两个空就不能有3了。

看《算法的乐趣》,试着用非递归穷举来解数独,看效率如何!

数独游戏,经典的为9×9=81个单元格组成的九宫格,同时也形成了3×3=9个小九宫格,要求在81个小单元格中填入数字1~9,并且数字在每行每列及每个小九宫格中都不能重复。

  • 相关二十格:一个数字只与其所在行列及小九宫格的二十格相关

  • 精心设计了有效性判定函数,最多一次遍历81个小单元格就能做出方案的有效性判定。

  • 同理设计了相关20格判定,一次0~9的循环就完成有效性判定。

  • 用数组模拟堆栈,为搜索提供回溯信息。

  • 利用对象具有map性质,来辅助判断方案的有效性,大大简化了算法。

只用了一个二维数组存储数独方案,一个一维数组作堆栈,一个布尔变量作回溯标识。

书上提到的难度为10.7的题目的答案,1秒内解决,效率还行。

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

摒除法:用数字去找单元内唯一可填空格,称为摒除法,数字可填唯一空格称为摒余解(隐性唯一解)。根据不同的作用范围,摒余解可分为下述三种:数字可填唯一空格在「宫」单元称为宫摒余解(Hidden Single in Box),这种解法称宫摒除法。数字可填唯一空格在「行」单元称为行摒余解(Hidden Single in Row),这种解法称行摒除法。数字可填唯一空格在「列」单元称为列摒余解(Hidden Single in Column),这种解法称列摒除法。行摒余解和列摒余解合称行列摒余解(Hidden Single in Line)。得到行列摒余解的方法称为行列摒除法。

我要回帖

更多关于 数独游戏题目 的文章

 

随机推荐