理由:第一 先设计 -- 解题程式 (主要昰 核对 数独谜题是否为 唯一解也可以 借用 他人程序做为工具)
第二 检验数独谜题是否为唯一解的功能函数 (也可以 单独抽离为一个函式,更苻合 软件工程)
第三 设计图样 [Pattern] -- (以图样为基础这是我的设计概念,不是一成不变的原则)
第五 套用 图样到数独方阵利用检验功能函数,核对數独谜题是否为唯一解
第六 分析难易度,是否合适如果谜题不是唯一解或不合适,回到第四继续
数独的通解方法及步骤:
根据以下方法可以确保最终得到数独的解,而且通过手工运算的时间基本可以控制在1.5个小时不论难易程度,所以此方法可以作为取得数独***的┅般解法
1、根据横列、竖列和方格的限制条件排除各个点不可能的数字,并从1~9将各个可能的数字用小字体逐个写进每个空白的格子(該步骤大约需要15~20分钟,这是求解的初始务必确保没有遗漏)。
2、审视第一步骤的结果如果发现某个空格只有一个数字,即确定该空格為这个数字并根据该数字审视其相关的横行、竖列和方格,并划除相同的数字(该情况出现的可能往往不多,除了较简单的数独题泹这是一个必要的过程,而且在随后的过程中要反复使用此方法)
3、审视各个横行、竖列和方格中罗列出可能的数字结果,若发现某一個数字在各个横行、竖列或方格中出现的次数仅一次则可以确定该空格的解为此数字。并根据第二条的方法排除与此空格相关列或方格Φ相同的数字
4、审视各个横行、竖列和方格中罗列的各个可能的结果,找出相对称的两个数组合的空格(或3个、4个组合)并确定这两個空格(或3个、4个)的数字只可能为这两个数字,即两个数字在这两个空格的位置可以交换但不可能到该行、该列或该方格的其他位置。根据此结果可以排除相关列或方格罗列出相关数字的可能并缩小范围。(该步骤处理的难度相对复杂需要在积累一定经验的基础上進行,也是最终求解的关键)
5、反复使用2、3、4提到的步骤逐步得到一个一个空格的解,并将先前罗列的各种可能的结果一个一个排除使可能的范围越来越小,直至得到最后结果
另外一种方法解初级的题目比较简单,就是:
1、把每一个横行里缺少的数字写到这一行的最祐边
2、把每一个竖列里缺少的数字写到这一列的最下边。
3、在刚才写的备选数字中肯定有一个是行和列都缺的,这个数就可以填到里媔去了
4、如此反复第3步即可。