数独题目怎么解?

芬兰数学家设计的题目和网友答案 本报官微截图

  扬子晚报微博粉丝破解“世界最难数独”

  数独是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。

  “芬兰数学家因卡拉花费3个月设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人才能破解这个游戏。”这是英国《每日邮报》6月30日的一篇报道,扬子晚报官方微博随后发布了这道“最难”的数独题。7月2日晚,网友@gkzhong在评论中贴出正确答案。记者采访到这位牛人,他给出的解题秘诀是:会推理数独,会写程序,能把推理的逻辑转换为计算机的实现。

  芬兰数学家3个月设计出“最难数独”

  近日,微博上疯传一道数独题目,扬子晚报官方微博也进行了转发,微博内容是:“据英国《每日邮报》6月30日报道,芬兰数学家因卡拉花费3个月设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案,因卡拉说只有思考能力最快、头脑最聪明的人才能破解。

  详细的报道中说,通常这种游戏的难度被分为1到5级,但因卡拉表示他设计的这个游戏的难度实际达到了11级,其中最难的部分要求玩家提前想到10个数字的填写。因卡拉说,自己不敢肯定这是否永远会是世界最难解的数独,但他自信这是迄今为止被设计出来的最难的一个。

  芬兰数学家、花费三个月、难度11级……这些关键词一罗列,让网友顿时对这道数独题有了很高期待。有人抱怨称,一眼望去,一个也填不上;也有网友果断收藏,等空闲了再去研究。网友“我只是徐国彬”竟然还在微博上和朋友打赌:“从现在开始,24小时之内他解不出这个数独,就要在下学期帮我洗衫一个星期。否则我帮他洗衫一个星期。”

  技术男解出题目将答案@本报官微

  就在大部分网友还处在“膜拜最难数独题”的时候,7月2日晚,一位名叫“gkzhong”的网友在扬子晚报官微上贴出了自己的答案:“递归(递归作为一种算法在程序设计语言中广泛应用。递归的方法是程序设计中有效的方法,采用递归编写程序能使程序变得简洁和清晰编者注),300毫秒”,后面附上了数独数字排列。网友纷纷惊叹牛人的解题速度,并称:“芬兰数学家设计三个月的数独都被你解决了,了不起!”

  记者联系到这位智慧网友,名叫钟广凯,小钟是广东人,在北京已经工作五年了,家里的宝宝刚刚4个月。小钟微博上自称“一个有态度的程序员”。据他介绍,自己曾先后担任财经技术Leader,微博架构设计,从后加入到雪球创业团队,担任技术总监,架构师。

  说起玩数独,这位28岁的大男孩告诉记者,“高中时候在报纸或者杂志上看到会玩玩,以后就几乎没再玩过。”关于这次的数独题目,他觉得没什么特别的技巧,只是借助计算机完成演算而已。

  据悉,小钟在高中时代还没系统学习过编程,现在自己熟悉了很多程序知识,很容易想到把人推算的过程交由计算机完成,推理的逻辑还是一样的,只是计算机的速度和人的速度比较起来快了很多。

  “而且程序计算好了不会出错,人推理还容易出错。我这次推算着填每个格子都是相同的方法。推算用任何种语言都可以实现的,用递归循环最基础的东西。”

  这次数独的程序算法大概是这样的:比如你看倒数第二个格子,可以放的是2,5,7,然后将2放入,继续推导其它格子(比如倒数最后一个格子),如此一层一层深入,如果遇到冲突,往上返回一层继续推导,直到结束,这个逻辑如果用人推理的话会非常麻烦,所以借助程序来演算,方便很多。据小钟介绍,昨天看到这题目时先是在纸上进行推导,找出信息最多的单元进行广度优先,推完几个小格后,觉得嵌套太深,很难回溯,又不愿放弃,就改用程序推算,算法还是刚才的逻辑,用递归来实现。

  那么,是不是不懂程序的人就没有办法解答了呢?小钟告诉记者:“不懂程序的人也想得到,可能很多人也是这样推算的,只是这道题这种方式推算的难度比较大,深入的层次比较多。简单的题是推算有限个步骤就可以逐渐确定,但这题诱入得太深,回溯就很艰难。”

  最后,小钟还总结了一下解答这到数独题目需要具备的素质:会推理数独,会写程序,能把推理的逻辑转换为计算机的实现。据了解,C++、c语言、java、vb 这些计算机语言都可以进行这个数独的推演。

  不止一名网友贴出答案

  记者调查发现,除了2日晚上小钟贴出答案,其实早在7月1日中午,果壳网网友“jiangxj”也贴出了自己的答案。答案和小钟是一样的。至于推演过程,并没有太多的透露。

  在果壳网,有网友的注意力不在题目本身,而是对于难度等级产生了质疑。记者注意到,@独数之道官方微博也对难度等级进行了辟谣:“这两天微博上转的很多的一则关于数独的新闻,称芬兰Arto Inkala又出了一道11星的数独题,声称是世界最难数独。但是他在接受报纸的访问时,说的是他相信目前没有找到最难的数独,数独难度评价的标准还未建立,即使是目前gsf、hodoku、se等的评级标准下,他认为这些评级标准中最难的题还是没找到。”(记者 乔金玲)

  作者:乔金玲 (来源:扬子晚报)

数独怎么玩?如何解数独?

数独是风靡全世界的填数字游戏,相信很多朋友都玩过,游戏的目的是在空格内填上1到9,每行、每列和每个3x3的小九宫格内的数字不能重复。这是个很有趣的游戏,但刚开始玩时可能有些棘手,让人摸不着头脑。所以今天我们就来聊一下解它的技巧!

首先说简单难度的关卡。

通过数1到9来解决谜题。既然你知道每行、每列和每个九宫格内不能出现相同的数字,你可以运用这个规则找到适当的数字,难度将取决于已知数字的位置。

寻找“唯一可填的数字”。想要解决简单的数独,你首先必须找出某个方格里唯一可填的数字,或是某个数字唯一可填的位置。从1开始,在有1的每一行和(或)每一列虚构一条线。当3x3九宫格内只剩一个没划线的方格,你就知道这肯定得填1(参看图一和图二)。

继续用上述方法寻找2到9的位置。填了几个数字后,一些之前有超过一个可能性的方格也能得到确定。参看图三和图四。注意,之前无法解决的3最后也确定了位置。

当你遇到困难时,可以重新检查一遍。遇到困难时,重新检查每一个方格和数字,你很有可能漏考虑了什么东西。通常只需要一个数字就能让你继续解决谜题。如果还是无法找到任何解决方法,那就开始在剩下的方格中,列出每一个可能的数字。

例如,图一的所有空格都可以填入几个数字。列出所有可能的数字。如果某一行或某一列已经有了1,那么1所在的九宫格就不能再出现1。

从1开始。使用和简单难度同样的逻辑思维,列出每个空格中可以填入的所有数字。如果可以,尽量找出唯一可填的数字。例如,上面的图三显示你无法确定3的位置。

面对困难的数独题时,你无法从一开始就顺利解决谜题,所以只需填下所有可能的数字。每个方格中都有两三个选择,把它们列出来能帮助你记住这些数字。

注意,如果某一九宫格、行或列中有两个方格只能填两个相同数字的其中之一,那么你可以用这两个数字排除其它的可能性。例如,在图中的九宫格里有四个空格。你从分析中确定了:

A格可以填1、2、3或4;

B格可以填1、2、3或4;

C格可以填3或4;以及

由此我们知道C格和D格肯定是3或4。A格和B格不可能是3或4,所以只能是1或2。 这项信息可能有助于解决其它空格的数字。

困难的数独题可能要花很多时间才能解决。困难的数独题实际上可能要好几天才能解开,但还是很有趣。题目越难,完成后的乐趣越大。困难数独和简单数独的解决方法一样,只不过一开始它只给你比较少的已知数字。只要每个方格你都知道有哪些数字可以填,解起题来就会轻松许多哦。

比方说,在某个九宫格中有两个方格可以填2,它们位于同一行或同一列,而且九宫格中的其它方格都不能填2。这意味着2只能填在这个九宫格里两个方格之一,同一行或同一列的其它地方也不能再出现2。这个思考方法是很简单有用的。

考虑使用这个必能成功的替代方法,以准确、快速地解决谜题。在这个方法中,你需要列出每一个空格可以填入的所有数字。在空格上方写下所有可能的数字(字体要小)。你可以在比较大的纸上把题目重画一遍,确保方格有足够的填写空间。列出空格所在的那一行、列和九宫格中缺少的数字。完成所有行列后,开始填入显而易见的答案。每一行列填写完毕后,就能解决谜题。

武士数独是数独高手才能挑战的谜题,基本上由5个数独组成。每个数独其中一角的九宫格都与中间的数独重叠(参看下图)。这些数独很长,而且难度高。

要时时留意重叠的九宫格。解决武士数独时,记住重叠的九宫格必须同时适用于两个数独。

注意比较长的行列。武士数独中有几个行列是由21个方格组成,看起来像是3个由9格组成的行列连在一起,而中间的行列又与左右两旁重叠。

像解决普通数独一样解决武士数独。你只需记得在比较长的行列中(与中间数独重叠),同一个数字可以出现多达3次。

杀手武士数独: 数字组合

好好研究杀手武士数独。它结合了武士数独与数和的玩法,规则有些不同,而且以颜色划分“区”。标准的数独规则仍适用于杀手武士数独,也即是每个九宫格里必须填上1到9。

留意每个彩色方格里的小数字。这是同区的数字总和。例如,如果某个区有3个方格,总和为7,那么个别方格的数字必定是1、2和4,但玩家得自己确认数字的排列顺序。

注意,同区方格的数字可能重复,但可能性不大。

留意总和。每一行、列及九宫格里的数字总和必须是45。

了解在杀手数独中,有4个3x3九宫格同时属于两个不同的数独。在这种情况下,你需要遵守数独的规则,也即是1到9只能在九宫格里出现一次。因此,很显然的这4个九宫格是解决整个谜题的关键。

解谜技巧|解谜技巧|解谜技巧|(重要的事情说三遍)

1、先看看总和比较高或比较低的区。它们的数字组合比较少,因此更容易解决。

2、寻找跨越两个数独的颜色区(有一格在另一数独的九宫格里)。 利用同一行、列和九宫格数字不得重复的规则,你应该能确认区内至少一个方格的数字。

3、不要只想着每一行、列和九宫格的总和是45。有时候你可以把同一排的2、3、4或更多九宫格加起来,得到总和90、135或180等,以确认某个难以捉摸的数字。

4、找出跨越两个九宫格、总和比较高或低的颜色区。例如,图中总和为3的颜色区和总和为4的颜色区形成90度的夹角位置。你应该很容易推算出方格里的数字,因为只有3个数字可以选,那就是1、2和3 。但别忘了每一行列的数字(1到9)不得重复。

5、找出是否有些组合可以被排除。如果由2个方格组成的颜色区总和为4、6、8等,逻辑上这些方格不能填上同样的数字(例如2和2、3和3及4和4等),所以你可以排除这些组合。

6、寻找形成一排的颜色区。例如,如果4个各有2格的颜色区形成一排,你可以用总和45减掉已知的数字,从而找出遗漏的数字。

数字组合-诀窍,找规律。

3、先做比较简单的数独题,才挑战杀手武士数独。杀手武士数独是数独的进阶版,强烈建议你先试着完成普通数独和武士数独,才挑战这些更复杂的谜题。杀手武士数独非常难,可能要花好几天才能完成,你需要有耐心,所以加油吧。(悄悄告诉你,这游戏玩多了对大脑有好处哦)

我要回帖

更多关于 怎么出数独题 的文章

 

随机推荐