[原创]数独解答程序

  安装ubunto10.10发现上面的数独游戏题有意思,这个游戏手机上也有。发现居然玩不过我老婆,一怒之下自己写了个计算器解气。用java写的,因为时间关系只做了解题部分。非常粗糙。

      源码下载

  解题算法:

  总的思路是根据游戏规则使用排除法进行遍历。以下是程序解题步骤。

  1、初始化,将所有格子都认为可能有1,2,3,4,5,6,7,8,9。

  2、采用排除法,填写1个数字后,去掉格子所在的行,列以及所在九宫格区域中其他格子的该数字值。用这种方法填写完难题中已知的数字。

  3、搜索未知格子中可能的数字,如果是唯一的,或者不是唯一的,但在九宫格中是唯一的,则转向第二步,填写该可能数字。

  4、在此做循环,一直到解题成功或者有未知格子,且不能满足3步的条件。进入尝试阶段。

  5、建立一个堆栈,保存当前答案。查找最少可能数的第一个未知格子。使用从第一个可能数开始尝试,直到解题成功或者失败。

  6、解题失败,则从栈中取回保存的答案,继续尝试下一个可能数。

  7、一直循环到解题成功。

  

 

ps:公司使用java没办法学习一下吧!为了生存

posted @ 2010-10-24 20:54  cspfeng  阅读(810)  评论(0编辑  收藏  举报
测试