前言:
现时咱们对“数独游戏算法讲解”大约比较珍视,姐妹们都需要分析一些“数独游戏算法讲解”的相关文章。那么小编在网摘上网罗了一些对于“数独游戏算法讲解””的相关资讯,希望同学们能喜欢,看官们快快来学习一下吧!上一篇介绍了高级技巧中的摩天楼、双线风筝结构,这两种结构都属于双强链,可以通过强弱链理论推导出来。今天我们再介绍两种结构,多宝鱼结构和唯一矩形法。
多宝鱼结构指的是某行(列)只存在于两个单元格,即组成强链,另外另外该数字在某一宫只存在于两个单元格,且行(列)的一端与宫的一端处在同一列(行),则可以删除这两个端点的共同作用格。
如上图,某数字在B7与G7组成一条强链,在第一宫只存在于C1和B3中,同时B3和B7属同一行,则C1与G7的共同作用格是G1,如果G1有该数字的话,可以删除。这里要特别强调的是,B3和B7可以是强链,也可以是弱链,对这多宝鱼结构是没有影响的,大家也可以通过强弱链的理论来进行推导来理解其原理。
举例说明,观察上图的E2和E7,对于候选数3来说,它们属于强链。再观察第三宫的B7和C9格,候选数3在第三宫只存在于B7和C9格,也是属于强链。同时B7和E7在同一列,所以符合多宝鱼结构,则可以删除E2中的候选数3。
再来学习下唯一矩形法。我们知道,标准的九宫数独是具有唯一解的。也许平时也会遇到有多个解的数独题,我们可以认为这样的题不够严谨。而唯一矩形法就是基于这样的前提整理出的一个结论。
如上图,C3和C6是一组25数对,H3的候选数为2、5,H6的候选数为2、5、6,这四个单元格形成一个矩形。如果H6只有候选数2和5的话,这题就会出现多种答案。大家可以通过假设法来推导。假设C3为2,则C6为5,H6为2,H3为5,这是第一种情况;假设C3为5,则C6为2,H6为5,H3为2。这两种填法对于其他行列宫没有任何影响,所以会有两种答案。根据数独题具有唯一解的特点,我们可以判断H6一定为6。
举例说明,如上图,E1和E2是一组16数对,H1和H2的候选数是1、6、8,这四单元格成矩形状。根据唯一矩形法,我们可以判断H1和H2之间肯定会有一个候选数8,则能删除H8中的候选数8。
再介绍一种高级技巧BUG+1,BUG指的是在数独题中,未填的单元格中的候选数都只有两个,且每个候选数对于每行、列、宫来说出现且只出现两次,当数独题呈上述情况时,该题要么无解,要么有两解。BUG+1是指当数独题基本呈BUG模式,但其中有一单元格有三个候选数。为了避免它成为BUG模式而导致无解或多解,这个单元格中只出现两次的候选数可以删除。
举例说明,如上图,我们会发现,除了G2有三个候选数之外,其他未填格均为双值格,候选数8和1在G行和第二列中只出现了两次,而候选数2在行列中都出现了三次,根据BUG+1的结论,我们可以推断出G2一定为2。还有BUG+2的模式,但在练习中很少遇到,这里就不做介绍了。
上面介绍的几种技巧,都是为了删除某些候选数。如果共同作用格中没有可删的候选数,那么即使题目中存在上述特殊结构,也没有意义。今天就分享到这,关注我,后面多更多的高级技巧等着大家。
标签: #数独游戏算法讲解