8 个谜题可解性测试用例错误
8 puzzle solvability test cases errors
我有一个 3 x 3 的拼图。要知道它是否可解,我需要计算反转的次数。如果反转的次数是偶数,那么它是可以解决的。
我在网上找到了示例代码:
这里他说 { 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 是空白方块,你应该在你的反转计数中忽略它。
在您的两个示例中进行该更改恰好排除了一个反转,因此两个都是错误的。
我有一个 3 x 3 的拼图。要知道它是否可解,我需要计算反转的次数。如果反转的次数是偶数,那么它是可以解决的。 我在网上找到了示例代码:
这里他说 { 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 是空白方块,你应该在你的反转计数中忽略它。
在您的两个示例中进行该更改恰好排除了一个反转,因此两个都是错误的。