board(1..n, 1..n, @RandNum(R,n)).
表是成功创建并用随机值填充的,但求解器返回不舒适 创建有效的可解决表是否需要一种特定的方法
我对Clingo不熟悉,我对您的代码的理解是,它会生成随机数,允许相同的数字出现在任意单元位置中。 noce,Hitori需要在分配黑细胞和白细胞的分布方面需要进一步的条件。
对矩阵/板的大小进行缩减,代码可能需要一段时间才能通过巧合制作一个可行的矩阵,该矩阵也满足您的hitori solver中指定的要求。为了增加我们的机会,我们需要在矩阵的创建过程中包括这些其他条件。
这样做的方法是:
2。填写白色单元的数字,同时确保它们都通过行和列不同
3。填写黑细胞的数字,同时确保它们与同一行或同一列中的白色单元格中的一个数字相同,并确保同一行或同一列中的所有黑细胞的数字不同这些要求中的大多数已经在您的求解器代码中类似,因此很有可能从中重新使用和修改代码片段。