8 个谜题可解性测试用例错误

8 puzzle solvability test cases errors

我有一个 3 x 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 个反转。所以它不可解,但代码说它是可解的。

我有没有犯错?还是代码有什么错误?

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

在您的两个示例中进行该更改恰好排除了一个反转,因此两个都是错误的。