简单好玩的算法(一)

在3 x 3的国际象棋棋盘上有4个马,黑白个两个,试用最短的步骤使得黑白双方*对调,如图所示:

简单好玩的算法(一)

解答:首先要知道在国际象棋里马移动的规则,即走“日”子形状因此可以得到图形运动轨迹(如果按照任意一个方向前进不后退就会发现中间的5号格没有用,而且运动轨迹是一个循环)

简单好玩的算法(一)简单好玩的算法(一)

如果再对其进行优化就会产生以下的图:(注意第三个图的编号顺序!)

简单好玩的算法(一)

所以算法就变成了四个马按照顺时针(或者逆时针)方向走到对面即可,所以这个问题的答案是需要4 x 4 = 16步