这个问题无解。因为最后14,15是颠倒的,只有一对颠倒必然无解,如果有两对颠倒就会有解。
可以用逆序数进行说明。
对于正确1,2,3,4,5,6,7,8,9,10,11,12,13,14,15。逆序数为0
可以执行的操作有四种:上下左右。
左右移动是不改变序列的,所以左右移动逆序数不变。
关键是上下移动,上下移动一次相当于在序列中移动3次,所以奇偶性最终是反转了奇数次,即上下移动会改变序列的逆序数奇偶性。 上下移动的副产品就是:空格所在行数到目标行(即最后一行)的行数的奇偶性发生改变。所以上下移动过程中的不变量是:逆序数奇偶性^空格所在行数到目标行的行数的奇偶性。其中"^"表示异或操作
综上可知,四种操作中的守恒量可以描述为:当前序列的奇偶性^空格距离目标行的距离奇偶性。在这个问题中,这个守恒量=1,而正确答案中守恒量=0。所以无解。
更进一步:
对于任意列数为偶数的拼图,守恒量为:当前序列的奇偶性^空格距离目标行的距离奇偶性。
对于任意列数为奇数的拼图,守恒量为:当前序列的奇偶性。
若当前状态的守恒量和目标状态守恒量相同,则必然有解否则,必然无解。
证明无解很容易,证明有解需要构造解。