0

如果有 9 行就像数独一样是 9 行,但它们却是

530070000
600195000
098000060
800060003
400803001
700020006
060000280
000419005
000080079

转换成

534678912
672195348
198342567
859761423
426853791
713924856
961537284
287419635
345286179

我认为它会更简单,但是一旦将它放入我的程序中,它就会留下巨大的空白。

我想我可以简单地走下每一列,如果它不妨碍任何其他数字,我可以将最小的数字放在第一列的空白处,但随着我的进步,我意识到我必须回去删除某些数字以使其更好。

请记住,唯一适用的条件是同一列中的数字不能相同,同一行中的数字不能相同,但没有框。

有什么建议吗?

4

2 回答 2

0

首先确定每个单元格的所有可能数字,仅给出截至本轮填写的单元格。如果任何单元格只有一个可能的数字,请选择它并重新评估受影响的单元格(在同一行、同一列和 3x3 正方形中)。

当您再也找不到只有一种可能性的单元格时,请使用递归回溯。

于 2012-10-04T13:28:26.323 回答
0

您要做的是递归回溯

数独回溯算法

http://en.wikipedia.org/wiki/Sudoku_algorithms#Backtracking

于 2012-10-04T13:23:40.503 回答