我试图以每个数字都有 9 个位置的观点来解决数独问题。这是我的数独的表示:
从表格中您可以看到数字5在数独中具有以下位置 (Row,Col):(2,8),(4,2),(6,5)。
例如,上面的行 是第1行。
我所做的如下:
alldifferent
对于每一行,使用from检查该行中的所有 ROW 值是否不同ic_global
。- 执行与上述相同的操作,但随后针对 COLUMN-Values。
- 对于每一行,检查平方数是否不同(每次使用 row 和 col 值计算),
alldifferent
再次使用。
上述工作正常,我得到了数独的解决方案,但不是正确的解决方案。这是因为我必须再检查一件事:每个位置都必须不同。使用我的求解器的当前状态,我可以获得一个在同一位置具有多个数字的解决方案,fe: 2和3都可能位于位置(5,7),因为我不检查所有位置是否不同。
我将如何解决这个问题?我试图以元组形式在一个列表中获取所有位置,然后检查所有元组是否不同,但我已经挣扎了几个小时,我真的很绝望。我希望我能在这里找到解决方案。
编辑:添加代码