-2

数独 ex1

在解决数独问题时,我可以从单元格 D[1,2] 和 D[2,2] 中删除可能的数字 (1) 和 (2)。因为 (8) 和 (9) 仅在那些单元格中是可能的,所以这些单元格是 (8 和 9) 或 (9 和 8)。这意味着数字 (1) 和 (2) 位于 D 块的第 3 行。这就是为什么我可以从单元格 A[3,3] 中消除数字 (1) 的可能性。

在过去的 40 小时内,我一直在配置一个功能来执行此操作,但无法管理。有没有人可以制作功能来检测这种类型的智力问题(消除一些可能性,因为其他一些 n 计数的可能性只能存在于 n 个单元格中,在我们的例子中,2 个数字 8 和 9 可以存在于 2 个单元格 D [ 1,2] 和 D[2,2])。

请不要告诉我数独的其他功能;我已经完成了它们,我无法编程的唯一算法就是这个。顺便说一句,您可以使用 r[i] (包含行号 i 的可能性的字符串), c[i] 用于列,b[i] 用于块(例如: b[4] (在此图像块 A ) = 1,2,3,4,5,6,7 因为已经定义了 8 和 9)。谢谢

4

1 回答 1

1

我真的没有看到问题,你基本上已经回答了你的问题。一般来说,您应该执行以下操作:

第 1 步:遍历一个块的所有 9 个单元格,并检查 (1) 是否仅包含在两个单元格中。

第 2 步:如果没有,请尝试下一个号码。如果是,则遍历所有 9 个单元格并检查 (2) 是否也在这两个单元格中,但不在其余 7 个单元格中。

第 3 步:如果没有,请检查下一个数字。如果是,请删除两个单元格的其他可能性,除了您找到的两个数字,您基本上就完成了。

第 4 步:如果找不到 (1) 匹配的数字(或在第 2 步的“非”部分选择的任何更大的数字),请从第 1 步重新开始,但尝试下一个数字,除非您已经是 8 ,然后你就可以停下来了。

最后,您可以为 3 个单元格中的 3 个数字、4 个数字动态扩展相同的模式......

于 2012-10-20T21:25:10.347 回答