小时候玩实体的玩具一直没弄明白,现在长大了一下子就懂了。总的来说,不管几乘几,拆分成一个个2×3的区域就行了。
下面以5×5为例(图 1):
第一行前三列1, 2, 3随便排好,然后把4和5连在一起,放在右上角三行两列的区域内(如图 2)。注意观察,5在前,4在后,从左边进入上面两个格子正好是正序的。
然后排好第二行6, 7, 8三列,9和10挨在一起放在右边三行两列的区域内(如图 3)。此时发现10在前,9在后,且从右边进入时,会出现逆序。于是将10和9两格分别沿二乘二的区域转半圈(结果如图 4所示)。此时就可以顺利排好9和10了。
可以总结出正序的情况为:大号在前,小号在后,需要从小的那边进;反之,小号在前,则需要从大的那边进。与正序相反的情况为逆序,此时需要利用这3×2的区域交换二者的次序。
现在用同样的方法排第三行(如图 5),可以发现14和15是逆序,交换次序后填入(图 6)。
到了第四行,由于下面只剩一行,没法在右边构成3×2的区域来交换可能出现的逆序,所以我们两行一起,从左到右依次排列。
第一列的最后两行是16和21,放入两行三列的区域中时发现是正序,直接放入(图 7)。同理放入17和22(图 8),将18和23调整为正序并放入后,最后三格是一定能拼好的(如果随机次序填入数字,将会有50%几率导致最后三格拼不好)。
总结:逐行逐列排,每一行的最后两列借用下两行调整次序后排入,最后两行从左至右逐列借用右两列调整次序后排入,最后三格一定是正序。
P. S. 至于速通,则需要细致的观察力和一些省步骤的小技巧,乃至对更大的区域进行同时排序,我这里就不进一步研究了。