我的n-拼图求解器遇到了问题。我原本以为它运作正常,但结果发现它在解决一些无法解的拼图。我尝试追踪问题,但这需要大量的追踪工作,到目前为止我没有发现任何作弊行为。我认为我理解了判断可解性的算法,我的实现也与网上一些例子的奇偶性相符……也就是说,当我计算每个拼图块后面的比它小的拼图块的数量,并加上空白拼图块的行索引时,我得到的奇数或偶数与其他人得到的结果相同。
所以我想到一个问题。在我的模型中,比如8-拼图,我的解状态是这样的:
_ 1 23 4 56 7 8
而不是
1 2 38 _ 47 6 5
或者
1 2 34 5 67 8 _
像其他一些版本那样。这样的设置是否会影响哪些拼图是可解的,哪些是不可解的呢?
谢谢!
z.
回答:
一般来说,是的:如果一个配置可以解到标准解,那么它就不能解到一个不可解的配置。
具体来说,这取决于你所使用的解的具体配置。你需要检查是否可以从那个配置解到标准配置。
编辑:可以这样想:
设A为标准解。设B为你偏好的解。设C为你的起始配置。
如果你能从A到B,并且你能从C到A,那么你就能从C到B。但如果你不能从A到B,并且你能从C到A,那么你就不能从C到B。