多图预警
先说结论:无解,不论多少格拼图都无解。有兴趣的继续往下看
我喜欢这个问题,可惜我来晚了。
能不用数学理论来解释这玩意的,在知乎上前无古人,现在只有我,希望后有来者。
很抱歉要吹嘘一下自己的水平:3阶5秒,4阶17秒,平均。
不然你一定会觉得,我接下来说的,都是在扯淡:滑块拼图移动形式的本质,是转动。
我们先简化题主的问题,看一个2*2:
2*2是怎么复原的?我们来看一个例子:
上面的是原图,下面开始复原:
你可以发现,复原的过程,其实就是做了逆时针的转动。
而实际上,所有的2*2,都是通过也只能通过顺/逆时针的转动实现复原的。
你可能知道我想说什么了,没错,如果把任意两块的位置颠倒,2*2是无法复原的。
结论似乎很明显,想想就知道,是不是?
因为转动的移动形式,不可避免的会受到限制。
-
接下来,回到题主的问题,3*3:
题主把它叫成9格拼图,这不太好。因为题主是以一格作为基本单元。
可在本人眼里,3*3就是四个2*2的结合:
【对原图实行了下右(也就是顺时针转动2步)的处理,方便各位理解】
同样的,4*4就是9个2*2的结合,以此类推。
-
(本人没有如此拙劣的拼图程序,大家就凑合着自动脑补7和8位置颠倒好了)
我们对题主的图进行同样的处理(下右):
其他区域已全部复原(上左即可),左下角的2*2,把7和8颠倒,能复原吗?
不能。
--------------------------------------------------------------------------------------------------------------------------------------------
题主的问题解决了,接下来是拓展内容:
事实上,把复原好的任意一阶拼图,任意互换两块的位置,都不可能复原。
我们举个例子,拿4*4来说,高大上一点:
我们假设,9和15的位置互换,经过本人一番处理:
可以看到,其他区域完全复原,现在的15(原来的9)和11位置颠倒,2*2,无法复原。
因为任意两块,都能转入同一个2*2,任意阶的拼图,本质上都是2*2的组合。
2*