黑马程序员技术交流社区

标题: 求大神指点,如何计算数独的所有解?? [打印本页]

作者: 世界公民    时间: 2013-6-23 09:00
标题: 求大神指点,如何计算数独的所有解??
本帖最后由 孙百鑫 于 2013-6-27 07:12 编辑

在杂志上看到了一道数独题,突发奇想,想用一个算法把数独的所有解都计算出来,然后就没有不会的数独题了,但是根据我的算法计算机算100年也算不完。各位大神有思路没??小弟求指点啊。{:soso_e199:}

123.jpg (62.8 KB, 下载次数: 0)

数独

数独

作者: 残影    时间: 2013-6-23 10:23
一直觉得数独很伤脑力,为什么有人喜欢在一天下班了齁累齁累之后竟然玩这么疲惫的游戏,,,,哎想不通!
作者: 小冰块    时间: 2013-6-23 10:53
看到数独就忍不住拿笔算出来了…………不过仍然没有算法思路啊,能模拟人脑的计算过程吗?

如果按照我的思路的话,可以首先定义三个纪录数组,分别表示九行九列以及九个九宫格中每个已填的数字个数。然后先来个循环,从1到9查看横三行竖三行是否有可以填的数字(话说这方法可以分装成函数调用哈),把能填上的都先填上,然后分别按照三个纪录数组的纪录个数从多到少的做判断把能填的都填上,最后把以上四个循环全部打入一个while循环体中,应该是可以算出来的……但是效率可能很惨烈……

话说这样算似乎只能用于简单数组,那种需要在一个格子里填多个猜测数的数独就不管用了哈。那种数独需要用递归来算,稍微想了一下就发现一脑子浆糊……

再话说,似乎算数独的最好语言并不是java,面向过程的语言并不合适。
作者: 小冰块    时间: 2013-6-23 11:12
哦,刚刚口误了一下,面向对象说成了面向过程。
话说解决数独问题最好的语言应该是prolog,是一种逻辑编程语言,我也只是听说过,楼主有兴趣的话可以研究研究~~
作者: 孙百鑫    时间: 2013-6-27 07:12
楼主您好。我已将您的帖子改成已解决。如果帖子发布长时间没加分。及时联系我。以免漏分的情况发生{:soso_e100:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2