数独规则如下:
每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。
影响数独难度的因素很多,包括最高难度的技巧、各种技巧所用次数、是否有隐藏及隐藏的深度及广度的技巧组合、当前盘面可逻辑推导出的出数个数等等。对于玩家而言,了解的技巧数量、熟练程度、观察力自然也影响对一道题的难度判断。市面上数独刊物良莠不齐,在书籍、报纸、杂志中所列的难度或者大众解题时间纯属参考,常有难度错置的情况出现,所以不必特别在意。网络上有很多数独难度的分析软件,比较著名的是 Nicolas Juillerat 开发的 Sudoku Explainer 和 Bernhard Hobiger 开发的 Hodoku,它们都是免费的软件。因为每种软件的都有不同的解题策略,所以也只能作为难度的大致界定,无法真正的解析出难度的内涵。
而笔者今天要讲的,是抛开题目,只根据规则,直接用MATLAB运行出一个数独九宫格魔方来。
01 问题的重述
假如有这样一个初始九宫格矩阵,要将它还原成满足数独规则的形式,应该怎么办呢?
S =
9 6 7 5 3 1 4 8 2
9 7 1 5 4