安装ubunto10.10发现上面的数独游戏题有意思,这个游戏手机上也有。发现居然玩不过我老婆,一怒之下自己写了个计算器解气。用java写的,因为时间关系只做了解题部分。非常粗糙。
解题算法:
总的思路是根据游戏规则使用排除法进行遍历。以下是程序解题步骤。
1、初始化,将所有格子都认为可能有1,2,3,4,5,6,7,8,9。
2、采用排除法,填写1个数字后,去掉格子所在的行,列以及所在九宫格区域中其他格子的该数字值。用这种方法填写完难题中已知的数字。
3、搜索未知格子中可能的数字,如果是唯一的,或者不是唯一的,但在九宫格中是唯一的,则转向第二步,填写该可能数字。
4、在此做循环,一直到解题成功或者有未知格子,且不能满足3步的条件。进入尝试阶段。
5、建立一个堆栈,保存当前答案。查找最少可能数的第一个未知格子。使用从第一个可能数开始尝试,直到解题成功或者失败。
6、解题失败,则从栈中取回保存的答案,继续尝试下一个可能数。
7、一直循环到解题成功。
ps:公司使用java没办法学习一下吧!为了生存