任何人都有以下谜题的逻辑

时间:2011-07-22 12:09:39

标签: logic puzzle

我有一个n * n矩阵。 每个顶点都有一个与之相关的程度。 Degree是可以绘制到其相邻顶点的线数。 我正在生成一个包含每个顶点的度数的数组。 例如,数组{1,2,2,1}实现了以下两种解决方案。

enter image description here

解决方案1 ​​

solution 2

解决方案2

我想要的是,当我得到阵列时,我想知道它是否有一个解决方案或多个解决方案。

这是另一个例子{0,3,1,2,4,2,2,1,3}有多个解决方案。

1 个答案:

答案 0 :(得分:0)

我在某处读到了这个。我认为它有两种方法:蛮力或精炼。

蛮力:尝试递归的每个顶点的度数所允许的任意行组合,如果发现矛盾则尝试回溯(节点获得不符合行列的内联计数)与其学位相对应。

精炼:不是从第一个节点开始,而是从链接最多的节点开始。这也通过剩余的节点进行递归,但剩余的节点通过其强度保持来更新(例如,如果先前的节点已经有一条线路,则节点的度数递减)。更快的原因是,具有较大程度的节点对其周围节点提出了更高的限制,例如,如果一个节点将邻居节点的剩余度数减少到0,则必须为该节点考虑0个案例。