数独设计的原理是啥

1. 以前我写过一个,基本上就是先随机生成完整数独方阵,然后去掉一定数量数字,再机器解题,如果找到多个解就重新生成。这样保证有且仅有一个解。2. 谜题没有必须对称的要求。3. 初始数字数量确实是直接决定难度的关键因素,越少时难度一般会越大。如果是傻瓜式的搜索,每少一个数字可以认为工作量会增加9倍。而除去盲猜以外的解题策略都会依赖于特殊位置上的数字组合,数字少的时候可用的策略就很少。需要注意的是就算初始数字个数相同的谜题其难度也会不同,取决于完整解题步骤中所使用的策略。目前已知谜题中最少要有17个数字才能保证唯一解。下图来自Mathematics of Sudoku。数独设计的原理是啥

简单查了下资料,发现已经有人通过搜索所有16数字谜题的方法,得出16数字谜题中不存在有唯一解的谜题这一结论,可以参考这篇文章。
■网友
尝试中,看到这里有题,就写个程序解了一下。
$ ./sd-dfs.exe
Ans_cnt = 1, dfs_cnt = 182169009 ...... used time = 12.203000 seconds.
数独设计的原理是啥

【数独设计的原理是啥】

■网友
谜题对称主要是因为生成一次坐标可以挖掉两个方格,这样可以减少一半的随机数生成过程
■网友
我设计的时候一般都是一边给大数字一边做,然后错了就更换大数字。说白了就是选情况分支演绎错了就倒回去直到有唯一解。当然这么做难度没法说,只能做好了再定难度。


    推荐阅读