前言:
目前看官们对“c语言数独”可能比较讲究,小伙伴们都需要分析一些“c语言数独”的相关知识。那么小编也在网上搜集了一些关于“c语言数独””的相关资讯,希望大家能喜欢,姐妹们快快来学习一下吧!前面几篇文章讨论了玩数独的益处和种类,从这一篇开始我们讨论有关数独的技巧。数独的种类繁多,我们先从最基本的标准九宫所涉及到的相关技巧开始说起。
对于入门级的数独题,可以根据数独的规则,直接采用直观法来填写数字,不需要什么技巧。如果是初级难度的题目,我们通常会用到一种方法,叫排除法。
讲排除法之前,我们先思考一下网格标记的问题。我们知道标准数独是9×9网格的盘式。九行九列,一共八十一格,如何像直角坐标系一样精准的标记每个格子呢?国际上一般用R来表示行(row),C表示列(column)比如第三行第五列的格子即为R3C5。国内一般用大写字母A至I来表示行,数字1至9表示列,比如第三行第五列的格子即为C5,后面有关数独的例子讲解都采用国内的标记方法。
排除法主要包含了单元排除法、区块排除法。单元指的是行、列、宫,所以单元排除法是行列排除法和宫内排除法的合称。
如上图,我们观察一下A行,因为第二宫有9,所以A4、A5、A6不能填9,又因为B7为9,所以A7也不能填9,那么A行只剩下唯一一个空格A3,则它一定为9。这就是从行来进行观察推导的,属于行排除法。
接下来我们再观察第九列,因为C8为3,则C9不能填3,又因为第六宫有3,所以D9、E9、F9都不能填3,则剩下唯一一个空格G9一定为3。这是从列来进行推导的,属于列排除法。
我们再来观察一下第一宫,因为B行和C行都有9,所以B2、C1、C3都不能填9,那么剩下唯一一个空格A3一定为9,这是宫内排除法。
上述三种方法很好理解,接下来我们思考一下什么是区块排除法。
如上图,观察一下第五宫,因为E行有6,所以第五宫的E4、E5、E6都不能填6,进一步说明了第五宫中剩下的两个空格D5、F5一定存在6。D5、F5在这形成了一个区块。那这个结论有什么作用呢?我们观察一下第二宫。因为D5、F5一定存在6,那么第二宫的A5、C5一定不为6,又因为第4列有6,所以A4、B4也不能为6,再根据A行有6,能判断出A6也不为6,那么第二宫只剩下唯一一个空格B6一定为6。该题的数字6在第四宫还能形成一个区块,能进一步推出来H3为6,大家观察一下,看是否能找到。
一般入门级和初级的数独题采用直观法和排除法就能解决,难度再高一点点的题有时会用到唯余法。什么是唯余法呢?我们来观察上图,从第9列的已知数来看,还剩下四个空格,需要填1、2、7、9,而在C3这个位置上,由于C行有7、9,第三宫有1,所以只能唯一一个选择就是填2,这就是唯余法,即某一单元格所在的行列宫出现了八个不同的数字,而该格只能填剩下唯一的一个数字。
唯余法相对于排除法来说比较难找到,不少题目会以它来作为突破口,所以熟练运用唯余法对解题速度来说帮助很大。
初级技巧暂时说到这。关注我,后面会更多精彩的数独技巧等你。
标签: #c语言数独 #数独题目解题方法初学 #数独解题方法和技巧 #数独技巧 解法