在程序中完成这个任务最简单的方法可能是使用大量的循环遍历每一列和每一行,收集每个单元格的可能值,然后排除只有一个可能性的单元格(无论它们是否只包含一个数字,还是它们是它们所在行/列中唯一包含此数字的单元格),直到你得到一个解决的谜题。当然,程序员的头脑中应该会产生警示的想法。
我要找的是以最有效的方式解决这道难题的方法(请尽量不要包含太多代码 - 我想自己解决这部分)。
如果有人能够为解决数独难题提供一个逐步的、高效的思考过程(无论是由人还是由计算机完成),我将非常感激 : ) 。我正在寻找的是某种模糊的东西(这样才具有挑战性),但足够信息丰富(这样我就不会完全迷失方向),可以让我入门。
感谢您,Justian Meyer 编辑:
看着我的代码,我在想:存储这些解决状态(即数独网格)的一些可能性。二维数组和三维数组浮现在脑海中。哪个最好?从表面上来看,二维数组可能更容易管理,但三维数组也会提供“盒子”/“笼子”的编号。
不管了,我会使用三维数组。