怎么样判断一个八数码问题有解还是无解啊?

不会连一个知道的人也没有吧.满意的会追加分数.谢谢.
2025-02-10 15:32:02
推荐回答(2个)
回答1:

利用奇偶性判断所给出的初始状态有无解.

判别方法是:
以数组为一维的举例子.
将八数码的一个结点表示成一个数组a[9],空格用0表示,设临时函数p(x)定义为:x数所在位置前面的数比x小的数的个数,
其中0空格不算在之内,那设目标状态为b[9],那r=sigma(p(x)) sigma()表示取所有的x:1-8并求和,
那对于初始状态a[9],t=sigma(p(x)),如果r和t同为奇数或者同为偶数,那么该状态有解,否则无解。

考虑到四种移动方法对sigma(p(x))的影响,左移和右移是不会影响它的值的,
更不会影响奇偶性,如果是上移或者下移就会影响:
上移:一次上移会使一个元素向前跳两个数字的位置,设这两个数字为a1,a2,
不妨设a11,a02,a13,a1
综合起来的结论就是不会影响sigma(p(x))的奇偶性。

回答2:

问题是不知道什么 是八数码。。。。。。