8个拼图可解决性测试用例错误

时间:2017-04-24 02:14:25

标签: algorithm artificial-intelligence

我有一个3乘3的谜题。要知道它是否可以解决,我需要计算反转次数。如果反转次数均匀,那么它是可以解决的。 我在网上找到了一个示例代码:

  

https://gist.github.com/caseyscarborough/6544636

他在这里说{1,0,3,7,2,5,8,4,6}是可以解决的。但我的计算却说不然。我有(10,32,72,75,74,76,54,84,86)。因此,这种情况下的反转次数为9,由于它是奇数,因此无法解决。

我用代码测试的另一个案例是(3,0,7,6,8,2,1,4,5)。它给了我(30,31,32,62,61,64,65,76,72,71,74,75,82,81,84,85,21),这是17次倒置。所以它不可解决,但代码说这是可以解决的。

我犯了什么错误吗?或者代码中是否有错误?

1 个答案:

答案 0 :(得分:1)

您的方法略有不正确。假设0是空白方块,您应该在反转计数中忽略它。

进行此更改会在两个示例中完全排除一个反转,因此两者都是错误的。