无法制作/配置难度函数

时间:2012-10-19 19:32:54

标签: algorithm delphi delphi-7 sudoku

Sudoku 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个细胞中[ 1,2]和D [2,2])。

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

1 个答案:

答案 0 :(得分:1)

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

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

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

步骤3:如果没有,请检查下一个号码。如果是,除去你找到的两个数字之外,除去两个单元格的其他可能性,你基本完成了。

步骤4:如果找不到(1)的匹配号码(或者在#34中选择的任何更大的号码;不是"步骤2的一部分),请从步骤1开始,但尝试下一步数字,除非你已经8岁,否则你可以停止。

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