数独 C语言思路
1个回答
展开全部
我的想法是:
1.对每一个空格,根据规则推断它可能填入的数字,并存储它的所有可能值;
2.根据可能值的个数,确定填写的顺序。比如说,有些空格只有一种可能,那必然是正确的结果,首先填入。
3.将所有只有一种可能的空格填写完毕以后,回到步骤1,重新确定剩下空格的可能值;
4.当没有只有一种可能的空格时(即每个空格都有两种以上可能),按照可能值个数从小到大的顺序,使用深度(广度)优先搜索,完成剩下空格。
上面方法应该可以解决问题,
也可以这样改进:
第4步,使用深度优先搜索时,每确定一个空格填写后,回到执行步骤1。
说的有点乱,希望你能明白我的意思。如有需要解释的,发消息给我。谢谢
1.对每一个空格,根据规则推断它可能填入的数字,并存储它的所有可能值;
2.根据可能值的个数,确定填写的顺序。比如说,有些空格只有一种可能,那必然是正确的结果,首先填入。
3.将所有只有一种可能的空格填写完毕以后,回到步骤1,重新确定剩下空格的可能值;
4.当没有只有一种可能的空格时(即每个空格都有两种以上可能),按照可能值个数从小到大的顺序,使用深度(广度)优先搜索,完成剩下空格。
上面方法应该可以解决问题,
也可以这样改进:
第4步,使用深度优先搜索时,每确定一个空格填写后,回到执行步骤1。
说的有点乱,希望你能明白我的意思。如有需要解释的,发消息给我。谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询