八数码问题 描述: 3*3的棋盘有八个数字(1-8)和一个空位,数字可以滑动。问题研究的是从一个棋盘状态到另一个状态。 是否有解的判定 12345678 对于上面的棋盘状态,我们可以表示为一个一维的序列 1,2,3,4,5,6,7,8,9,0 (空位表示为0) 。 现在,对这个序列定义逆序,即在某个数字的前面比它大的数字个数。 我们再来看滑动对逆序的影响: 左右:逆序不变。上下:逆序加2或减2。 也就是说,一个棋盘状态无论怎么滑动,它的逆序和的奇偶性是不会变的。 所以八数码问题是否有解就是对比两个状态的奇偶性是否相同。