数独解法
数独解题方法大全
作者:扬子活力论坛泥瓦匠整理:隱讀書生
数独这个数字解谜游戏,完全不必要用到算术!会用到的只是推理与逻辑。解题方法分两大类:直观法和候选数法。
直观法就是不需要任何辅助工具,从接到数独谜题的那一刻起就可以立即开始解题。绝不猜测。数独直观法解题技巧主要有:唯一解法、基础摒除法、区块摒除法、唯余解法、矩形摒除法、单元摒除法,余数测试法。
候选数法就是解数独题目需先建立候选数列表,根据各种条件,逐步安全的清除每个宫格候选数的不可能取值的候选数,从而达到解题的目的。
使用候选数法一般能解比较复杂的数独题目,但是候选数法的使用没用直观法那么直接,需要先建立一个候选数列表的准备过程。所以实际使用时可以先利用直观法进行解题,到无法用直观法解题时再使用候选数方法解题。
候选数法解题的过程就是逐渐排除不合适的候选数的过程,所以在进行候选数删除的时候一定要小心,确定安全的删除不合适的候选数,否则,很多时候只有重新做题了。有了计算机软件的帮助,使得候选数表的维护变得轻松起来。
数独候选数法解题技巧主要有:唯一候选数法、隐性唯一候选数法、区块删减法、数对删减法、隐性数对删减法、
三链数删减法、隐性三链数删减法、矩形顶点删减法、三链列删减法、关键数删减法、关连数删减法。
一、直观法:
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
显然A8=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为12356789的可能,经过候选数的安全删除后,D3的候选数变为"4"这个唯一候选数了。
2、隐性唯一候选数法
当某个数字在某一列各宫格的候选数中只出现一次时,那么这个数字就是这一列的唯一候选数了。这个宫格的值就可以确定为该数字。
这时因为,按照数独游戏的规则要求每一列都应该包含数字1~9,而其它宫格的候选数都不含有该数,则该数不可能出现在其它的宫格,那么就只能出现在这个宫格了。
对于唯一候选数出现行,九宫格的情况,处理方法完全相同
这是制作好的一张候选数表,注意观察B5,B9,D1
数独的7种解法
数独解法 七种解法: 前言 数独这个数字解谜游戏,完全不必要用到算术!会用到的只是推理与逻辑。刚开始接触数独时,即使是只须用到唯一解技巧的简易级谜题,就已可让我们焦头烂额了,但是随着我们深陷数独的迷人世界之后,这类简易级的数独谜题必定在短时间内难再使我们获得征服的满足。于是,当我们逐步深入、进阶到更难的游戏后,我们将会需要发展龈?多的解谜技巧。虽然最好的技巧便是我们自己发现的窍门,这样我们很容易??能记住它们,运用自如,不需要别人来耳提面命。但是如果完全不去观摩学习他人发展出来的技巧,而全靠自己摸索,那将是一个非常坚苦的挑战,也不是正确的学习之道!所以让我们一齐来探讨数独的解谜方法吧! 数独的解谜技巧,刚开始发展时,以直观式的唯一解及摒除法为主,对于初入门的玩家来说,这也是一般人较容易理解、接受的方法,对于一般简易级或中级的数独谜题,如果能灵活运用此二法则,通常已游刃有余。 1.唯一解法 当数独谜题中的某一个宫格因为所处的列、行或九宫格已出现过的数字已达8 个,那么这个宫 格所能填入的数字就剩下这个还没出现过的数字了。 <图1> (9, 8)出现唯一解了
<图1>是最明显的唯一解出现时机,请看第8 行,由(1,8) ~(8,8) 都已填入数字了,只剩(9,8)还是空白,此时(9,8)中应填入的数字,当然就是第8 行中还没出现过的数字了!请一个个数字核对一下,哦!是数字8 还没出现过,所以(9,8) 中该填入的数字就是数字 了。8 出现唯一解了2> (8, 9)<图<图2>是另一个明显出现唯一解的情形,请看第8 列,由(8,1) ~(8,8) 都已填入数字了,只剩(8,9)还是空白,此时(8, 9)中应填入的数字,当然就是第8 列中还没出现过的数字中该填入的数字就是9) (8, 还没出现过,所以9 哦!是数字了!请一个个数 字核对一下, 9 了。数字出现唯一解了图3> (7, 5)<<图3>是另一种明显出现唯一解的情形,请看下中九宫格,在这个九宫格中除了(7, 5)还是空白外,其他宫格都已填有数字了,所以(7, 5)中应填入的数字,当然就是下中九宫格中还没出现过的数字了!请一个个数字核对一下,哦!是数字 1 还没出现过,所以(7, 5) 了。中该填入的数字就是数字1
幼儿数独游戏(1-6)
21634251634 4625346251 12563125463 4352463512 1426514326 63215632145 22 16325146325 2516253146 612534 53421534261 36142361452 42561425613 33 14652146523 2516235164 624623415 4513451632 56241562341 146314256
3621364521 546125436 45613452613 6325613254 23614236145 54162541362 55 31526315426 4213462153 14652146532 25314253614 2345621345 536534261 66 61354621354 43526435216 6452164523 35261352461 513513642 213246135
45126453126 2653126534 63634251 51243512463 21345261345 34512345612 88 1534165324 24351243516 624536241 41635412635 3562351462 62413624153 99 42516425163 134******** 61325641325 31352641 5421534216 1634216534
1010 6245612345 3412345162 1354136524 5613524613 6325463251 25136251436 1111 62534625341 34256314256 5243562413 146143562 41625431625 5634256134 1212 3624362154 4126451263 26315246315 53642513642 2541625431 1526134526
数独解法
数独解题方法大全 作者:扬子活力论坛泥瓦匠整理:隱讀書生 数独这个数字解谜游戏,完全不必要用到算术!会用到的只是推理与逻辑。解题方法分两大类:直观法和候选数法。 直观法就是不需要任何辅助工具,从接到数独谜题的那一刻起就可以立即开始解题。绝不猜测。数独直观法解题技巧主要有:唯一解法、基础摒除法、区块摒除法、唯余解法、矩形摒除法、单元摒除法,余数测试法。 候选数法就是解数独题目需先建立候选数列表,根据各种条件,逐步安全的清除每个宫格候选数的不可能取值的候选数,从而达到解题的目的。 使用候选数法一般能解比较复杂的数独题目,但是候选数法的使用没用直观法那么直接,需要先建立一个候选数列表的准备过程。所以实际使用时可以先利用直观法进行解题,到无法用直观法解题时再使用候选数方法解题。 候选数法解题的过程就是逐渐排除不合适的候选数的过程,所以在进行候选数删除的时候一定要小心,确定安全的删除不合适的候选数,否则,很多时候只有重新做题了。有了计算机软件的帮助,使得候选数表的维护变得轻松起来。 数独候选数法解题技巧主要有:唯一候选数法、隐性唯一候选数法、区块删减法、数对删减法、隐性数对删减法、
三链数删减法、隐性三链数删减法、矩形顶点删减法、三链列删减法、关键数删减法、关连数删减法。 一、直观法: 1、唯一解法: 当某行已填数字的宫格达到8个,那么该行剩余宫格能填的数字就只剩下那个还没出现过的数字了。成为行唯一解。 当某列已填数字的宫格达到8个,那么该列剩余宫格能填的数字就只剩下那个还没出现过的数字了。成为列唯一解。 当某九宫格已填数字的宫格达到8个,那么该九宫格剩余宫格能填的数字就只剩下那个还没出现过的数字了。成为九宫格唯一解。 下面是例题: A行已经添入8个数字,A行只有数字3没有出现过,所以A9=3,这是行唯一解。
高难度的数独技巧窍门
-! 1 2 □ 4 D fi 1 8 9 A 8 1 3 B 7 6 1 Ei 9 A C 9 1 8 7 5 D 1 7 8 4 3 9 E 3 8 9 1 4 F 5 4 9 i 6 8 1 G 9 3 H 1 L 3 8 1 如左图,观察行 B ,我们发现除了 B3 单元格以外其余的八个单元格已经填入了 1、2、4、5、6、7、8、9,还有3没有填写, 所以3就应该填入B3单元格。这是行唯一 解法。 1 2 3 4 S 6 ? S 如左图,观察D7-F9这个九宫格, 我 们发现除了 E7单元格以外其余的八 个单元格已经填入了 1、2、3、4、6、7、 & 9,还有5没有填写,所以5就应该 填入E7单元格。这是九宫格唯一解法。 A 1 J R c D E F G E T fl 3 1. 5 B 2 41 1 3 1 ti 1 7 8 5 S 2 3 9 3 8 g 1 4 T 5 4 g T 2 3 0 a 1 2 3 1 6 1 3 e 1
! -单元唯一法在解题初期应用的几率并不高,而在解题后期,随着越来越多的单元格填上了数字, 使得应用这一方法的条件也逐渐得以满足。 △基础摒除法 基础摒除法是直观法中最常用的方法,也是在平常解决数独谜题时使用最频繁的方法。单元排除法使用得当的话,甚至可以单独处理中等难度的谜题。 使用单元排除法的目的就是要在某一单元(即行,列或区块)中找到能填入某一数字的唯一位置, 换句话说,就是把单元中其他的空白位置都排除掉。 那么要如何排除其余的空格呢?当然还是不能忘了游戏规则,由于1-9的数字在每一行、每一列、每一个九宫格都要出现且只能出现一次,所以: 如果某行中已经有了某一数字,则该行中的其他位置不可能再出现这一数字;如果某列中已经有了某一数字,则该列中的其他位置不可能再出现这一数字;如果某区块中已经有了某一数字,则该区块中的其他位置不可能再出现这一数字。 基础摒除法可以分为行摒除、列摒除和九宫格摒除。 如左图,观察D1-F3这个九宫格。由于11 格有数字9, 所以第1列其它所有单元格都不能填入9;由于B2格有数字 9,所以第2列其它所有单元格都不能填入9 ;由于D8格有 数字 9,所以行D其它所有单元格都不能填入9。这 样,D1-F3这个九宫格内只有E3单元格能够填入数字9。所 以E3单元格的答案就是9。 如左图,观察行H。由于C3格有数字4, 所以第3列其他 所有单元格不能填入数字4; 由于E8格有数字4,所以第8列其他所有单元格不能填入数 字4;由于I4格有数字4,所以G4-I6这个九宫格内其他所有 单元格不能填入数字4。这样行H中能够填入数字4的单元 格只有H9。所以H9单元格的答案就是4。
(完整版)数独教案--完整版
数独教案 基本项目 课程名称:感受数独魅力 授课对象:三到六年级学生 课程类型:逻辑思维课,选修课 教学材料:自编纲要 教学时间:一学期,每周1课时,共18课时 具体教学方案 一、指导思想 数学是神奇的世界,肯定有不少学生产生了浓厚的兴趣。为此,训练学生的思维活动是重中之重。数学思维活动在数学教学课堂中探求问题的思考、推理、论证的过程等一系列数学活动都是数学教学中实施思维训练的理论依据之一。因此,开展校本数独课程,一是能更好的促进学生数学思维能力的发展,符合课改的要求;二是填补了我们课改中的弱项。 二、教学目标 1、尊重学生的主体地位和主体人格,培养学生自主性、主动性,引导学生在掌握数学思维成果的过程中学会学习、学会创造。 2、将数学知识寓于游戏之中,教师适当穿针引线,把单调的数学过程变为艺术性的游戏活动,让学生在游戏中学习在玩中收获。 3、课堂上围绕“趣”字,把数学知识容于活动中,使学生在好奇中,在追求答案的过程中提高自己的观察能力,想象能力,分析能力和逻辑推理能力。力求体
现我们的智慧秘诀:“做数学,玩数学,学数学”。 三、教学措施 1、结合教材,精选小学数学的教学内容,以适应社会发展和进一步学习的需要。力求题材内容生活化,形式多样化,解题思路方程化,教学活动实践化。 2、教学内容的选编体现教与学的辨证统一。教学内容呈现以心理学的知识为基础,符合儿童认知性和连续性的统一,使数学知识和技能的掌握与儿童思维发展能力相一致。 3、教学内容形式生动活泼,符合学生年龄特点,赋予启发性,趣味性和全面性,可以扩大学生的学习数学的积极性。 4、每次数学思维训练课都有中心,有讨论有交流有准备。有阶段性总结和反思。 四、教学内容 数独初级入门课程
数独技巧
以下我们将叙述一道标准数独的全部解题过程,在此过程中涉及到的技巧有摒除法、余数法、区块法、数对法、X- Wing这几个常在数独书籍中会涉及到的技巧,文中将描述各个技巧的结构及作用效果,相信在看完解题过程之后,您能相当程度地掌握到数独的基本解题技巧,也能在解题的过程中发现数独给您带来的乐趣。 谜题如下图 第一招:摒除法 大家之前已阅读过数独的规则:在每个单元中,每个数字只能出现一次,那么也就意味着,如果一行已经出现了一个1,这行的其他格就不再有1,利用这个观点,引发出摒除法。 第1步:数字2对B1进行摒除
r1c8为2,则其所在R1不再有2; r2c4为2,则其所在R2不再有2; r9c2为2,则其所在C2不再有2, 在B1中还没有2,B1有6个空格可以填2,但其中5个空格被摒除了,只剩下r3c1,所以得到第一解:r3c1=2 这个方法因为是对宫实施摒除的,所以叫宫摒除法。宫摒除法是解题技巧里面最简单的一种,也是解题过程中使用最多的一种。其实解数独就是这么简单! 第2步:r1c3=7(宫摒余解,数字7对B1摒除) 第3步:r4c7=7(宫摒余解,数字7对B6摒除) , 第4步:数字7对C5进行摒除 r1c3为7;则其所在R1不再有7; r2c9为7,则其所在R2不再有7; r4c7为7,则其所在R4不再有7; r6c2为7,则其所在R6不再有7; r8c1为7,则其所在R8不再有7; r9c8为7,则其所在R9不再有7, 在C5中还没有7,C5有7个空格可以填7,但其中6个空格不能为7了,所以天元格r5c5=7 《 这个方法因为是对列实施摒除的,所以叫列摒除法,与其类似的还有行摒除法。行列摒除法也是很常用的方法。 见识了摒除法之后,大家是否尝试寻找另一个摒余解呢不好意思要给大家泼凉水了,因为这个盘势下已经找不到宫摒余解或者行列摒余解了,那怎么办呢,没关系,我们继续介绍其它的技巧。
数独解题技巧
数独解题技巧 1.直观法 (1)单元限定法:此处的单元指的是行、列或者是小九宫格。使用此种方法时有三种情况:当某行、列、小九宫格有八个单元格中已有数字,空白处必定为唯一 缺少的数字。 (2)单元排除法:在某一单元(行、列、小九宫格)中找到能填入某一数字的唯一位置,也就是把单元中其他的空白位置都排除掉。 (3)区块排除法: a)当某数字在某个小九宫格中可填入的位置正好都在同一行上,因为该小九宫格 中必须要有该数字,所以这一行中不在该小九宫格内的单元格上将不能再出现 该数字。 b)在某数字在某个小九宫格中可填入的位置正好都在同一列上,因为该小九宫格 中必须要有该数字,所以这一列中不在该小九宫格内的单元格上将不能再出现 该数字。 c)当某数字在某行中可填入的位置正好都在同一小九宫格上,因为该行中必须要 有该数字,所以该小九宫格中不在该行内的单元格上将不能再出现该数字。 d)当某数字在某列中可填入的位置正好都在同一小九宫格上,因为该列中必须要 有该数字,所以该小九宫格中不在该列内德单元格上将不能再出现该数字。 (4)唯一余解法:如果某一单元格所在的行、列、小九宫格中共出现了八种不同的数字,那么该单元格可以确定地填入还未出现过的数字。 (5)矩形排除法:如果一个数字在某两行中能填入的位置正好在同样地两列中,则这两列上其他的单元格中将不能再出现这个数字;或者如果一个数字在某两列 中能填入的位置正好在同样地两行中,则这两行的其他的单元格中将不能再出 现这个数字。 (6)直观扫描法 (7)逐行、逐列扫描法 2.候选数法 (1)显示唯一法:扫描候选数栅格表,如果哪个单元格中只剩下一个候选数,就可以应用显示唯一法,在该单元格中填入这个数字,并在相应行、列、小九宫格 的候选数中删除该数字。 (2)隐式唯一法:若一个单元格内德候选数不止一个,但该单元格所在的行、列、小九宫格内,只有它含有某一个数字,那么这个单元格就可以直接填这个数字。 (3)显式对法:指在一个行、列、小九宫格中,如果有两个单元格都包含且只包含相同的两个候选数,则这两个候选数字不能再出现在该行、列、小九宫格的其 他单元格的候选数中。 (4)隐式数对法:在同一行、列、小九宫格中,如果一个数对(两个数字)正好只出现且都出现在两个单元格中,则这两个单元格的候选数中的其他数字可以被 删除。其他候选数被删除后,隐式数对就变成了显式数对。 (5)矩形顶点法:当某个候选数在某两行(列)仅出现相同两列(行)上,则这个候选数就可以从这两列(行)的其他单元格上删除掉。
数独游戏简介
数独游戏简介 数独游戏是一种源自18世纪末的瑞士的游戏,后在美国发展、并在日本得以发扬光大的数学智力拼图游戏。 拼图是九宫格(即3格宽×3格高)的正方形状,每一格又细分为一个九宫格。在每一个小九宫格中,分别填上1至9的数字,让整个大九宫格每一列、每一行的数字都不重复。数独的玩法逻辑简单,数字排列方式千变万化。不少教育者认为数独是锻炼脑筋的好方法。 一、数独的历史 早在数千年前,中国人就发明了九宫图:在9个方格中,横行和竖行的数字总和是相同的。“数独”也不是什么新生事物,已经存在了数百年。18世纪,瑞士数学家莱昂哈德·欧勒发明了“拉丁方块”,但并没有受到人们的重视。直到20世纪70年代,美国杂志才以“数字拼图”的名称将它重新推出。日本随后接受并推广了这种游戏,并且将它改名为“数独”,大致的意思是“独个的数字”或“只出现一次的数字”。 同类似的填字游戏不同,数独受欢迎的原因之一是它既不需要丰富的百科知识,也不要掌握大量的词汇,这使其能迅速为孩子和初学者所接受。根据游戏开始时的方格中已有的数字和位置,数独难易程度不同,有些复杂的甚至令数学家也不能完成。据著名的动游戏开发商Astraware Ltd.预计,移动数独游戏的版本多达几十种,Palm和Windows Mobile
设备版本的数独游戏就各有20种左右。Sudokumo推出的移动数独游戏,能够下载到大多数手机中。这家位于英国的游戏软件公司表示,已经在全球卖出了7500套数独游戏,而且来自用户的兴趣还在增加。 二、数独的玩法 数独的谜题就是一个三纵三列的9个九宫图,有些单元格中已经填入了值,另外的单元格则为空,等待解题者来完成。数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。迷题中包含有9x9=81个单元格,每个单元格仅能填写一个值。规则只有一个,即使1-9每个数字在每一行、每一列和每一宫中都只出现一次,整个大九宫格每一列、每一行的数字都不重复,把81个单元格都填上了数字就完成了这个数独题。 三、数独的基本解法 1,排除法(摒除法) 摒除法:用数字去找单元内唯一可填空格,称为摒除法,数字可填唯一空格称为排除法。 根据不同的作用范围,可分为下述三种: 数字可填唯一空格在「宫」单元称为宫排除,也称宫摒除法。
数独解法技巧
数独解法(一) 九宫格摒除解 对第一次接触数独游戏,接受了1~9的数字在每一行、每一列、每一个九宫格都只能出现一次的规则后,开始要解题的玩家来说,基础摒除法绝对是他第一个想到及使用的方法,十分的自然、也十分的简易。如果能够细心、系统化的运用基础摒除法,一般报章杂志或较大众化的数独网站上的数独谜题几乎全部可解出来。只不过大部分的玩家都不知如何系统化的运用基础摒除法罢了! 基础摒除法虽然简单,但在寻找解的过程中,仍然要分成三个部分:寻找九宫格摒除解、寻找列摒除解、寻找行摒除解。不要说是初入门者,即使是很多未接受过本讯息者,也常常会遗漏了行、列摒除解的寻找。对一些粗心的玩家来说,即使是九宫格摒除解也常被跳着做,所以解起题来就会感到不是十分顺手。 1.九宫格摒除解的寻找 九宫格摒除解的系统寻找是由数字1开始一直到数字9,周而复始,直到解完全题或无解时为止;每个数字又需从上左九宫格起,直到下右九宫格,周而复始,同样要不断重复到解完全题或无解时为止。
<图2.1.1> 以<图2.1.1>的解题为例:先从数字1开始,并由上左九宫格起寻找九宫格摒除解,会影响上左九宫格的数字,一定存在第1列~第3列以及第1行~第3行如<图2.1.2>的绿色区域。 <图2.1.2> 本区域已存在的数字1共有两个,它们分别存在(2,9)及(5,1);其中(2,9)的1将摒除第2列其它宫格再填入数字1的可能,因为依照规则每一列只能有一个数字1,如果再在本列填入数字1,那么本列就会有两个1了。同理,(5,1)的1则将摒除第1行其它宫格再填入数字1的可能,其示意图如<图2.1.3>。
<图2.1.3> 对上左九宫格的摒除仅能到此地步,我们可以很容易的发现:本九宫中还有3个宫格不在被摒除的区域中,意即:这3个宫格都仍有可能填入数字1,依不可猜测的原则,本九宫格暂时不予处理。 接下来我们要尝试在上中九宫格寻找是否有九宫格摒除解1:会影响上中九宫格的数字,一定存在第1列~第3列以及第4行~第6行。本区域已存在的数字1共有3个,它们分别存在(2,9)、(4,6)及(9,5),其摒除的范围示意图如<图2.1.4>。 <图2.1.4>
数独游戏程序
%数独游戏程序,可以破解绝大部分数独题。 %用法:将所有文件复制到MATLAB工作目录下,或是将MATLAB工作目录修改为本文件夹所在路径。 %A是一个初始的99的方阵,空白处用0代替,调用TT=shudu(A),则生成结果。 function TT=fill1(A) T=A; i=1; n1=0;n2=0; flag1=judge1(T); while i<10 n1=0;n2=0; for j=1:9 if T(i,j)==0&i~=flag1(:,1)&j~=flag1(:,2)&iden(i,j,1,T)==0 n1=n1+1; end end if n1==1 for j=1:9 if T(i,j)==0&i~=flag1(:,1)&j~=flag1(:,2)&iden(i,j,1,T)==0 T(i,j)=1; flag1=judge1(T); end end end for j=1:9 if T(j,i)==0&j~=flag1(:,1)&i~=flag1(:,2)&iden(j,i,1,T)==0 n2=n2+1; end end if n2==1 for j=1:9 if T(j,i)==0&j~=flag1(:,1)&i~=flag1(:,2)&iden(j,i,1,T)==0 T(j,i)=1; flag1=judge1(T); end end end if n1==1|n2==1 i=0; end i=i+1; end TT=T;
function TT=fill2(A) T=A; i=1; n1=0;n2=0; flag2=judge2(T); while i<10 n1=0;n2=0; for j=1:9 if T(i,j)==0&i~=flag2(:,1)&j~=flag2(:,2)&iden(i,j,2,T)==0 n1=n1+1; end end if n1==1 for j=1:9 if T(i,j)==0&i~=flag2(:,1)&j~=flag2(:,2)&iden(i,j,2,T)==0 T(i,j)=2; flag2=judge2(T); end end end for j=1:9 if T(j,i)==0&j~=flag2(:,1)&i~=flag2(:,2)&iden(j,i,2,T)==0 n2=n2+1; end end if n2==1 for j=1:9 if T(j,i)==0&j~=flag2(:,1)&i~=flag2(:,2)&iden(j,i,2,T)==0 T(j,i)=2; flag2=judge2(T); end end end if n1==1|n2==1 i=0; end i=i+1; end TT=T; function TT=fill3(A) T=A; i=1; n1=0;n2=0;