玩数独的技巧有什么技巧

努力加载中,请稍候...
新手入门 【特色】 【任务】 【宠物】 最新热点 【焦点】 【热门】 【套装】 资料大全【宠物】 【人物】 【其他】
您的位置:>>>
神武小游戏数独技巧:高智能?看技巧!
神武数独闯关小游戏技巧,一起来看看吧。
  相关新闻:
  数独(すうどく,Sudoku)是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9&9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。 每一道合格的数独谜题都有且仅有唯一,推理方法也以此为基础,任何无解或多解的题目都是不合格的。
传统数独玩法
  神武更新了一个小游戏数独,首先简单介绍一下&数独&,是9&9的填数字游戏,能明显看出有3&3的大方格。目的是填满81格,并且横、竖、所在的九宫方格内满足1~9之间只出现过一次。
  本人以图文并茂的方式来解说,主要是填数字的。
新增数独玩法博客访问: 979112
博文数量: 237
博客积分: 6394
博客等级: 准将
技术积分: 2550
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
玩了把比较简单阶段的数独,截个图留个纪念吧
&&&&&九宫格数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次
500)this.width=500;">
那么如何写一个关于数独游戏的程序呢?以下的内容来自《编程之美》
关键的问题是:
使用什么样子的数据结构来存储数独游戏中的各种元素?
如何的生成一个初始的局面?
(1)数据结构定义
把每一个小的格子抽象成一个对象,记录格子所在的行号和列号,取值,以及该格子所对应的取值的范围(用于深度优先搜索)
#define SIZE 9
class Cell
&&&& ArrayList GetValidValueList();//获得当前的格合法的取值范围
&&&& void PickNextValidValue();//获得下一个可能的取值,保存在value中
&&&& void Clear();
&&&&//行号
&&&&//列号
&&&&//取值
&&&& ArrayList ValidL//该格子所对应的可能的取值的范围(用于回溯)
&&&& ArrayListIterator currentValueI//表示当前的取值在ValidList中的位置,用于取下一个的值
&&&& bool IsP//表示是否是回溯到该格(true),还是第一次进行相应的处理(false)&
整个棋盘表示为Cell m_cells[SIZE][SIZE];
(2)生成初始界面算法
(A)深度优先遍历
首先生成一个完整和合法的解,然后随机的去掉格中的一些数字。
从(0,0)开始,对于每一个没有处理的格子,首先调用GetValidValueList(),来获取当前的格子的可能的取值的范围,并从中选取一个作为当前的格子的值,接着搜索下一个格子。在搜索的过程中,如果出现某一个格子没有可行的值,则回溯,修改前一个格子的取值。直到所有的格子都能找到相应的可行解。
bool GenerateValidMatrix()
&&&& Coord coC//当前的处理的对象
&&&& coCurrent.x = 0;
&&&& coCurrent.y = 0;
&&&& while(true)
&&&&&&&&& Cell c = m_cells[coCurrent.x,coCurrent.y];
&&&&&&&&& c.x = coCurrent.x;
&&&&&&&&& c.y = coCurrent.y;
&&&&&&&&& ArrayL
&&&&&&&&& if(!c.IsProcessed)
&&&&&&&&& {
&&&&&&&&&&&&&&& c.GetValidValueList();
&&&&&&&&& }
&&&&&&&&& if(c.ValidList.Count > 0)//合法的取值的范围大于0
&&&&&&&&& {
&&&&&&&&&&&&&&& c.PickNextValidValue();//在ValidList中选择一个可能的取值
&&&&&&&&&&&&&&& if(c.x == SIZE - 1 && c.y == SIZE - 1)
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&//生成完毕
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& else
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&& coCurrent = NextCoord(coCurrent);//向前搜索,处理下一个结点
&&&&&&&&&&&&&&&&}
&&&&&&&&& }
&&&&&&&&& else//当前的格子中不存在合法的取值
&&&&&&&&& {&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& if(c.x ==&0 && c.y == 0)
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& else
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&& c.Clear();//清空当前格子中的ValidList将IsProcessed设置成false
&&&&&&&&&&&&&&&&&&&&& coCurrent = PreCoord(coCurrent);//回溯处理前一个格子&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&}
&&&&&&&&& }
&&&&&&& 先随机生成一个宫(9个格),通过置换行、置换列的方法实现,但是生成的数独不完全,只能生成9!个合法的数独。
阅读(1156) | 评论(1) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
第二个方法很简洁,但是取巧了,还是第一个经典,就是效率低了点,怀疑我的那台古董手机用的是第二个。
请登录后评论。阅读本文后您有什么感想? 已有 0 人给出评价!
lol新英雄卢西恩资在美服已经全面放出,lol新英雄卢锡安什么时候出呢,国服一般都比美
最新版本英雄联盟版本剑圣“易大师修改巨大,而这个修改国外玩家都一致认为剑圣更强了
LOL推出的新英雄净化者卢西恩职业定位为一位强力的下路ADC英雄,小编感觉他就是VN+男枪
由完美世界开发及运营的大型3D玄战MMORPG网游在8月15日迎来内测,虽然很多3D网游迷们普
{insd m=&0& i=&37597&}
魔力宝贝纪念版龙之沙漏完整攻略让你更数独解题方法大全
作者:扬子活力论坛 泥瓦匠      整理:隱讀書生
数独这个数字解谜游戏,完全不必要用到算术!会用到的只是推理与逻辑。解题方法分两大类:直观法和候选数法。
 直观法就是不需要任何辅助工具,从接到数独谜题的那一刻起就可以立即开始解题。绝不猜测。数独直观法解题技巧主要有:唯一解法、基础摒除法、区块摒除法、唯余解法、矩形摒除法、单元摒除法,余数测试法。
候选数法就是解数独题目需先建立候选数列表,根据各种条件,逐步安全的清除每个宫格候选数的不可能取值的候选数,从而达到解题的目的。
使用候选数法一般能解比较复杂的数独题目,但是候选数法的使用没用直观法那么直接,需要先建立一个候选数列表的准备过程。所以实际使用时可以先利用直观法进行解题,到无法用直观法解题时再使用候选数方法解题。
候选数法解题的过程就是逐渐排除不合适的候选数的过程,所以在进行候选数删除的时候一定要小心,确定安全的删除不合适的候选数,否则,很多时候只有重新做题了。有了计算机软件的帮助,使得候选数表的维护变得轻松起来。
数独候选数法解题技巧主要有:唯一候选数法、隐性唯一候选数法、区块删减法、数对删减法、隐性数对删减法、三链数删减法、隐性三链数删减法、矩形顶点删减法、三链列删减法、关键数删减法、关连数删减法。
一、直观法:
1、唯一解法:
        当某行已填数字的宫格达到8个,那么该行剩余宫格能填的数字就只剩下那个还没出现过的数字了。成为行唯一解。
        当某列已填数字的宫格达到8个,那么该列剩余宫格能填的数字就只剩下那个还没出现过的数字了。成为列唯一解。
        当某九宫格已填数字的宫格达到8个,那么该九宫格剩余宫格能填的数字就只剩下那个还没出现过的数字了。成为九宫格唯一解。
  下面是例题:
A行已经添入8个数字,A行只有数字3没有出现过,所以A9=3,这是行唯一解。
第1列已经添入8个数字,第1列只有数字5没有出现过,所以E1=5,这是列唯一解。
在A8所在九宫格区域已经添入8个数字,只有数字9没有出现过,所以A8=9,这是九宫格唯一解。
2、基础摒除法
     基础摒除法就是利用1 ~ 9 的数字在每一行、每一列、每一个九宫格都只能出现一次的规则进行解题的方法。基础摒除法可以分为行摒除、列摒除、九宫格摒除。
实际寻找解的过程为:
寻找九宫格摒除解:找到了某数在某一个九宫格可填入的位置只余一个的情形;意即找到了 该数在该九宫格中的填入位置。
寻找列摒除解:找到了某数在某列可填入的位置只余一个的情形;意即找到了该数在该列中的填入位置。
寻找行摒除解:找到了某数在某行可填入的位置只余一个的情形;意即找到了该数在该行中的填入位置。
    利用基础摒除法解题的过程就是依次从数字1 ~ 9 在行、列、九宫格寻找能放入该数唯一的一个位置。需要综合用到行摒除、列摒除、九宫格摒除的方法。
    看能用基础摒除法确定B2、C8、E7、F6、I5的数字吗?
题目如下:
A4=9,则A行其它格排除9;G1=9,第1列排除数字9;D3=9,第3列排除数字9。
由基础摒除法,第A1所在的九宫格内9只有一个唯一的位置,即确定B2=9。
A4=9,则4列其它格排除9;G1=9,第G行排除数字9;H9=9,第H行排除数字9。
由基础摒除法,第G4所在的九宫格内9只有一个唯一的位置,即确定I5=9。
A4=9,则4列其它格排除9;D3=9,第D行排除数字9;I5=9,第5列排除数字9。
由基础摒除法,第D4所在的九宫格内9只有一个唯一的位置,即确定F6=9。
A4=9,则A行其它格排除9;B2=9,第B行排除数字9;H9=9,第9列排除数字9。
由基础摒除法,第A7所在的九宫格内9只有一个唯一的位置,即确定C8=9。
C8=9,则8列其它格排除9;D3=9,第D行排除数字9;F6=9,第F行排除数字9;H9=9,第9列排除数字9。
由基础摒除法,第D7所在的九宫格内9只有一个唯一的位置,即确定E7=9。
3、区块摒除法
    区块摒除法是基础摒除法的提升方法,是直观法中使用频率最高的方法之一。
        所谓区块,就是将行分成3个三个相连的小方块构成,列也是分成3个三个相连的小方块构成。九宫格同样被看成由3个三个相连的小方块构成,如下面示意图: 
          
区块摒除法的核心思想如下面解释(以行为例),对于在列也是相同的道理
假如(G1~G3)黄色区域区块其中之一是数字9。
则,(H4~H6)蓝色区域可能含有数字9。
否则(I4~I6)绿色区域含有数字9。
假定我们已确定(G1~G3)黄色区域区块其中之一是数字9。
(H4~H6)蓝色区域含有数字9。
则:在(I7~I9)绿色区域一定含有数字9。如果再通过其它方法确定(I7~I9)绿色区域中某两个宫格不能为数字9,则就能确定数字9在(I7~I9)区块的具体位置。
下面举一些例子
能使用区块摒除法确定F6的数字吗? 
D2=2,则E1~E3蓝色区块,或F1~F2绿色区块必包含数字2。
又有B1=2,利用列摒除法,E1、F1不能为数字1,有F2,F3已填有数字,所以,E2~E3蓝色区块必有数字2
由上面得出黄色区块,蓝色区块包含数字2,这是典型的区块摒除法,得到绿色区块必包含数字2
又G4=2,F5已添入数字,所以F6=2
4、唯余解法
    唯余解法就是某宫格可以添入的数已经排除了8个,那么这个宫格的数字就只能添入那个没有出现的数字。
唯余解法道理非常简单,但在实际使用是比较困难,要注意识别。A5=?
其实这就是唯余解法的原理,很简单吧。但是实际使用时就不会容易发现了。
能使用唯余解法确定B7的值吗?
呵呵,等于8。
能确定E9、A9、B9、C9的值吗?
由区块摒除法可以得出E9=9。在区块摒除法没有举这个例子,这里补充。
由唯余解法,C9=2。
同样,可得出B9=4,A9=8。
5、矩形摒除法
 矩形摒除法是比较高级的排除方法,虽然矩形摒除法的原理非常简单,在实际使用时比较难于观察出来。
矩形摒除法的原理如下:
如上图,如果在第3列,我们确定数字9只能在B3或H3出现。在第7列,数字9只能在B7或H7出现。则B3,H3,B7,H7构成矩形,符合矩形摒除法的条件。
由上,可以得出数字&9&仅可能出现在 (B3,H7)上,或者出现在 (B7,H3)上
无论出现上面的那一种情况,我们都可以推断出B行,H行的红色区域都不能再为数字 9了。
下面举一个使用矩形摒除法的例子
       
由C7=3,我们可以判断在第3列,数字3只能出现在A3和H3。
又第6列,数字3只能出现在A6和H6
由A3,H3,A6,H6形成矩形符合矩形摒除法的条件
由矩形摒除法得到H8不可能是3,又根据C7=3,所以G9=3
6、单元摒除法
单元摒除法是比较基本的排除方法,下面举例解释
能确定A8的数字吗?
由D5=7,得出D8不等于7
H9=7,得出G8、H8、I8均不等于7
7、余数测试法
所谓余数测试法就是在某行或列,九宫格所填数字比较多,剩余2个或3个时,在剩余宫格添入值进行测试的解题方法。
我们看B行,B3可能添入的数为5或者6,我们从5开始测试。
我们在B3添入5进行测试,得到左图,没有得出出错的推断,所以B3=5可能是正确的判断,如果能判断出B3&&6,则才能肯定B3=5。
所以下面我们还需要用B3=6进行测试
在B3添入6,推出B8=5。
观察C行,C7,C8,C9必含有数字5。
证明B3=6是错误的。从而得出B3=5
二、候选数法:
1、唯一候选数法
候选数法解题的过程就是逐渐排除不合适的候选数的过程,当某个宫格的候选数排除到只有一个数的时候,那么这个数就是该宫格的唯一的一个候选数,这个候选数就是解了。
我们可以排除D3为的可能,经过候选数的安全删除后,D3的候选数变为&4&这个唯一候选数了。
2、隐性唯一候选数法
当某个数字在某一列各宫格的候选数中只出现一次时,那么这个数字就是这一列的唯一候选数了。这个宫格的值就可以确定为该数字。
这时因为,按照数独游戏的规则要求每一列都应该包含数字1~9,而其它宫格的候选数都不含有该数,则该数不可能出现在其它的宫格,那么就只能出现在这个宫格了。
对于唯一候选数出现行,九宫格的情况,处理方法完全相同
这是制作好的一张候选数表,注意观察B5,B9,D1
可以看出在第1列,数字9只在D1出现。
在第5列,数字3只在B2出现。
在B9所处的九宫格里,数字9只有在B9出现。
所以“9”是第1列的隐形唯一候选数。
“3”是第5列的隐形唯一候选数。
“9”是A7九宫格的隐形唯一候选数。
所以确定D1=3,B5=3,B9=9
3、三链数删减法
找出某一列、某一行或某一个九宫格中的某三个宫格候选数中,相异的数字不超过3个的情形,进而将这3个数字自其它宫格的候选数中删减掉的方法就叫做三链数删减法。
三链数删减法的原理如下面图示
在H行,H2,H5,H7的候选数(12),(23),(13),构成三链数,那么123这三个数在H行将只能出现在H2,H5,H7,那么本行其它宫格就可以删除这3个候选数了。这是三链数发生在行的情况。
在G7所在九宫格,G7,H8,I9的候选数(12),(23),(13),构成三链数,那么123这三个数在这个九宫格将只能出现在G7,H8,I9,那么本九宫格其它宫格就可以删除这3个候选数了。这是三链数发生在九宫格的情况。
三链数是数对的扩展,我们在对上面的三链数进行扩展,得到右边的特殊的三链数,只要保证在3个宫格内,其包含的候选数也为3个,就都符合我们的要求,比如(123,123,123),(12,12,123)都符合要求。
我们进一步再扩充,发现只要在N个宫格内,其包含的候选数也恰为N个,那么处理和三链数是相同的道理,这样就形成了四链数,比如(12,23,34,14),(123,123,14,1234)等。
甚至可以扩充到五链数,七链数(虽然在实际解题中作用不大了)。
平时我们用到最多的就是三链数,四链数了。
在A4所在九宫格,我们看到B4~B6,形成三链数,则本九宫格其它宫格就可以去除候选数&2&,&7&,&9&,这样就得到C6=4。
同上面完全相同的一副图,在A行,A7~A9形成由179构成的三链数,排除本行其它宫格的候选数179后得到A3=3。
4、隐性三链数删减法
隐性三链数是从隐性数对发展而来的。
在某行,存在三个数字出现在相同的宫格内,在本行的其它宫格均不包含这三个数字,我们称这个数对是隐形三链数。那么这三个宫格的候选数中的其它数字都可以排除。
当隐形三链数出现在列,九宫格,处理方法是完全相同的。
我们进一步扩充,在某行(列,九宫格),存在N个数字出现在相同的宫格内,在本行的其它宫格均不包含这N个数字,我们称这个数对是隐形N链数。那么这N个宫格的候选数中的其它数字都可以排除
在中间九宫格,候选数“2”,“5”,“9”仅出现在E4,E6,F4,形成隐形三链数,所以在E4,E6,F4,可以排除其它候选数,得到F4=9。
5、矩形顶点删减法
矩形顶点删减法和直观法讲到的矩形摒除法分析方法是一样的。矩形顶点删减法在识别时比较不容易找到,所以最好先使用其它的方法。
如上图,如果在第3列,候选数“9”只能在B3或H3出现。在第7列,候选数“9”只能在B7或H7出现。
则B3,H3,B7,H7构成矩形,符合矩形顶点删减法的条件。
由上,可以得出数字“9”仅可能出现在(B3,H7)上,或者出现在(B7,H3)上
无论出现上面的那一种情况,我们都可以推断出B行,H行的红色区域都不能再为数字9了。可以将红色的宫格的候选数中去除数字“9”。
举例说明如下:
在第3列,数字“3”仅在A3、H3出现和第6列,数字“3”仅在A6、H6出现,A3、H3,A6、H6构成矩形,符合矩形顶点删减法要求,
则红色宫格应排除候选数“3”
6、三链列删减法
三链列删减法是矩形顶点删减法的扩展,如果不清除矩形顶点删减法,可以参考矩形顶点删减法,以便于更容易理解本节内容。
利用“找出某个数字在某三列仅出现在相同三行的情形,进而将该数字自这三行其他宫格候选数中删减掉”;或“找出某个数字在某三行仅出现在相同三列的情形,进而将该数字自这三列其他宫格候选数中删减掉”的方法 就叫做三链列删减法。
如果数字“1”可能出现在B行、E行、G行的黄色宫格,则符合“某个数字在某三列仅出现在相同三行的情形”,符合三链列删减法的要求。
则红色宫格均不包含候选数“1”。
这是前图的一个变形。其中一行的“1”只能放在这一行的两个位置。 处理和上图一样,红色宫格均可以排除候选数“1”。
举例说明:
数字&6&在第2列,第6列,第8列。均出现在A,B,I行。其中在第6列仅出现B,I行,仍然符合三链列删减法的要求。
则红色宫格均可以排除候选数&6&
7、关键数删减法
在进入到解题后期,利用前面讲到的唯一候选数法、隐性唯一候选数法、 区块删减法、数对删减法、隐性数对删减法、 三链数删减法、隐性三链数删减法、矩形顶点删减法、三链列删减法都无法有进展的时候,可以考虑使用关键数删减法。关键数删减法就是在后期找到一个数,这个数在行(或列,九宫格)仅出现两次的数字。我们假定这个数在其中一个宫格类,继续求解,如果发生错误,则确定我们的假设错误。如果继续求解仍然出现困难,不妨假设这个数在另外一个宫格,看能不能得到错误。这就是关键数删减法。
关键数删减法的本质是让我们一个个去测试,逐渐排除不可能的候选数,从而求解的过程。
这种解法就暂时不举例子了
阅读(...) 评论()唯一框技巧应用二:
我们可以在乘法的谜题中应用同样的技巧。下面例子中的最下面一行,包含了一个俩个方格,乘法运算为2的粗线框。这也就意味着1x2是唯一符合它的数字运算组合,即使我们不知道哪个方格应该填1还是2。因为最底下一行已经有了数字4,那么我们将该行剩下的唯一方格填上3。进而我们将余数1填到其上面的相邻方格中。
唯一框技巧应用三:
下面例子中,最底下一行包含了一个俩个方格,数字和为4的粗线框。因为算数数独规则要求同一行列不能有重复的数字,那么1+3是唯一符合要求的组合。然而,网格左上角的方格已经填上了数字3,那么这就意味着该粗线框中1和3的填法只有一种,如右图所示。
唯一框技巧应用四:
这个例子与上面的例子很相似,只不过最左侧一列的顶端俩个为空方格而其候选数字为4和5。然而,数字5对于左上端的粗线框太大了,所以,我们只能按照右图所示将4填入该框内,并将余数1填到其相邻方格中。
唯一框技巧应用五:
我们可以在乘法算数数独中应用同样的技巧。下图的顶端一行中包含了一个三个空格相乘为6的粗线框。因为1x2x3是其唯一可能的数学运算组合,我们可以进而推测出该行其他俩个方格为4和5。又因为右上角的方格中不可能是5(5与任何整数相乘都不能得出8),所以我们将4填入其中,随即将余数2填到与它相邻的下方方格中。
唯一框技巧应用六:
下图是一道二重运算的算数数独,包含了乘法和除法。与之前的例子相似,第二行左侧方格的候选数字为3。当填完3以后,我们将1填到其下面的方格中,因为这是唯一能满足除后结果为3的数字组合。
唯一框技巧应用七:
下面是另外一道应用唯一框技巧的二重(乘除)算数数独的例子。让我们检查一下左侧一栏内2÷的粗线框。该谜题中只有俩种可能符合除后为2的组合,2÷1和4÷2,那么也就是说该粗线框内只的候选数字只能是1,2和4。然而,第四行已经存在了数字1和4,那么第四行的左侧一格必须填上数字2。与之前的其他例子不同,我们还不能将其粗线框内的余数填上,因为1和4都有可能。
唯一框技巧应用八:
有些时候,我们很难辨认出唯一框技巧,如下图所示。最右边一列的顶端粗线框内的数字组合为1+2。然而,当我们检查第一行中的三个方格的粗线框时发现,只有2+4+5才符合其要求,因此我们将数字2排除出右侧顶角的方格并填上数字1。然后,我们将余数2填到其下面。
单一候选数技巧
根据算数数独的第一条规则,每一行和每一列不能有重复的数字,这也就意味着有些时候我们可以应用数独的技巧进行解题。让我们观察下面例子中问号标记的方格。在问号所在行中,1和5已经存在,那么问号处只能填写2,3和4。而本列中,2和4已经存在,那么问号处唯一的可能性只能是数字3。
隐式唯一技巧
有些时候,我们只需将某个方格简单的填上其所属数字即可,因为同一行列的其他方格不能容纳该数字。我们叫这种排除法为隐式唯一技巧,数独中也有相关的法则。
隐式唯一技巧应用一:
让我们看下面二重运算谜题中最左侧一列。在底端的粗线框中,唯一可能的数字组合为4÷1,尽管我们不知道哪个数字在方格中排列的顺序。同样地,该列中间的粗线框中的唯一可能的数字组合为5-2。尽管4-1同样可以满足该粗线框内的条件,但是由上步所知,数字4和1已经出现在了底端的粗线框中。现在,假设我们将其他数字都填到相应的方格内,数字3也不会出现在上述的俩个粗线框内,这也就意味着我们只能将数字3填到左上角的方格。
隐式唯一技巧应用二:
同样的情况发生在下面谜题的第三行,数字5只能填写到从右数的第二个方格处。
网格余数技巧
网格余数,在解决许多情况中相对方便的技巧,从另一个角度分析并解决算数数独谜题。网格余数是基于已知网格中的某一列或者某一行的数字之和(积)总是相等。例如,一道4x4的谜题中,某一行列的数字之和总是1+2+3+4=10。同样道理,其数字之积移动是1x2x3x4=24。下面是一些利用网格余数技巧的例子:
网格余数技巧应用一:
我们看一下下面的例子。该谜题的第一行中包含了俩个完整的粗线框,如灰色区域所示,其和分别是8和2(可以作为已知数字)。我们将这俩个粗线框相加即可得到2+8=10,但是我们知道,一道5x5的算数数独的任意一行的数字之和只能是1+2+3+4+5=15。这也就意味着其差,15-10=5,正是由俩个粗线框之间的空格所为。因此,我们将数字5填写到该空格内。
网格余数技巧应用二:
下面是另外一道利用网格余数反向思维的例子。如下面谜题所示,左侧一列包含了俩个粗线框,如灰色区域所示,其中一个和为10并且完全包含在该列中,而另外一个和为9并且有俩个方格包含在该列中。我们将俩个粗线框内的数字相加即可得到10+9=19。但是我们知道,一道5x5的算数数独中,任意一行列的和只能是1+2+3+4+5=15。这也就意味着其差,19-15=4,正是由不在该列而在该粗线框中的空方格所为。因此,我们将4填到相应的位置。
网格余数技巧应用三:
网格余数技巧同样适用于乘法的谜题中。如下面的例子所示,右侧一列包含了俩个粗线框,如灰色区域所示,一个积为8并且完全在此列中,而另外一个积为60并且只有俩个方格在此列中。我们将俩个粗线框的数字相乘,得到积为8x60=480,但是我们知道,一道5x5的算数数独中,某一行列的积只能为1x2x3x4x5=120,这也就意味着其商,480÷120=4,正是由不在该列却在其粗线框内的方格所致,因此我们将4填入其中。
框内技巧涵盖了一部分方法帮助玩家确定粗线框中数字的位置和数值。下面是一些利用框内技巧的例子:
框内技巧应用一:
下面例子中,灰色区域所示的粗线框中,唯一的数字组合是4+5+5=14。在5x5的算数数独中,这个真命题适用于一切由3个方格组成的L形粗线框中。又因为同一行列不能出现重复的数字,那么数字5只能填写在该粗线框的对角位置上。
框内技巧应用二:
下面是另外一个应用框内技巧的例子。下面的谜题中,灰色区域所示的四个方格,有三个方格存在于同一列。这也就意味着该三个方格唯一的数字组合只能是1+2+3=6,因为任意其他的组合都将使得该三个数字之和为7或者大于7,这也会使得第四个方格无法填上数字。因此,我们将余数,7-6=1,填到第四个方格上。
框内技巧应用三:
框内技巧同样可以应用在那些乘法的粗线框内。下面的例子中,灰色区域所示的粗线框中的数字组合只能是4x4x5=80。在5x5的算数数独中,该真理适用于一切由三个方格组成的L形粗线框中。又因为,同一行列不能出现重复的数字,那么数字4只能填写在其对角上。
框内技巧应用四:
较大的粗线框对于使用框内技巧是个挑战。让我们观察下下面部分解出的谜题中,灰色区域和为8的粗线框。应用加法最小值技巧,我们推算出该区域顶端一行的方格之和最小为1+2=3,中间这一行的最小之和也是为1+2=3,我们将这4个方格相加得到的最小数值只能是3+3=6,而考虑到该粗线框之和是8,那么我们最多只能将1或2填入到该粗线框的第三行的唯一空格中,又因为该列中已经存在了数字2,那么我们只能将数字1填到该粗线框的底部方格中。
框内技巧应用五:
在一道5x5的算数数独中,4个方格并且粗线框之积为32的数字组合只能是1x2x4x4或者2x2x2x4。让我们看一下下面例子中,灰色区域所示的粗线框。很明显,第二个组合方式不可能存在于该粗线框中,因为无论我们怎么排列数字,数字2都会出现在同一行或列中。这也就意味着只有1x2x4x4符合要求,又为了避免数字4出现在同一行列中,我们只能将数字4填写到左边的方格。
至此,我们谈论的技巧都不足以解决一些困难的谜题。所以,我们需要一些高级技巧去解决那些特别的情况以及富有乐趣的逻辑挑战。大多数的高级技巧都应用了递推,即一种向前看的假设方法并且检查一步或者俩步后是否会有矛盾发生。尽管应用高级技巧有时候和应用之前的技巧很相似,但是最不同的一点是:解题者必须向前看并且发现逻辑冲突。下面是一些应用高级技巧解决特别题目的例子。当你独立解决困难的算数数独谜题时,你或许会发现更多的适合自己的技巧:
高级技巧一:
下面是一道已经部分解出的5x5算数数独谜题。我们知道谜题左侧一列必须包含数字5,现在我们假设数字5将会出现在三个红点所示的任意一个位置。这也就意味着该灰色区域所示的粗线框中,左侧一列的数字最小之和为1+2+5=8,中间一列的数字最小之和为1+2+3=6而最右边一列的数字最小之和为1+2=3,而将它们加起来为8+6+3=17。因为17已经超过了该粗线框的数字之和,我们推出假设失败,那么数字5只能填到左下角的方格中。
高级技巧二:
下面所示技巧和上面的例子相似,只不过它只是用了相反地假设,即证明一个特定区域中必须填上某个数字。下面是一道5x5的算数数独谜题。让我们假设第二行的数字5不会放置在红点所示的任意位置。那么我们可以推出,灰色区域所示的粗线框的第一行最大和为2+5=7,第二行最大和为2+3+4=9,第三行为5,我们将其相加即可得到7+9+5=21。因为21比该粗线框之和小,假设失败并且说明数字5必须存在于红点所示的其中一个位置。现在,尽管我们不知道数字5应该具体填写到哪里,但是我们确定了左侧一列数字1和5的位置。
高级技巧三:
因为在所有5x5算数数独中,任意一列的方格之和为1+2+3+4+5=15,那么灰色区域所示的粗线框中,左侧一列的和为15。考虑到这个粗线框的数字之和为20,我们还需将红点所示位置填上数字,并且使得它们相加为5。现在,让我们检查左边数的第二列,看看该列中的数字5应该放置的位置。我们不能将5放在红点所示区域,因为这会使得其粗线框数字之和超过20。我们也不能将5放在红点上方的L形粗线框中,因为只有1x1x4或者1x2x2才会得到4。因此,数字5只能放置在该列的顶端,如下面右图所示。

我要回帖

更多关于 数独技巧 的文章

 

随机推荐