《棋盘上的“马步”探究》(一)

0. 问题背景 (本课题为九年级组探究课题)


在中国象棋中,马的走法是一直一斜,棋谚“马走日字(本质上说,“马走日字”是走1×矩形的对角线)。从棋盘上任意一点出发,马能跳到任意的一个点。




1. 在图中半幅棋盘上,马从点A出发,能否跳到任意的一个点?      


分析与解答

我们将半幅棋盘的格点,抽象为5×9的方格矩阵,矩阵中的方格代表棋盘中的一个点。马走“日”字相当于在矩阵中移动时,每一步的行号加减1且列号加减2,或者行号加减2且列号加减1。如果不考虑棋盘的边界问题,每一步一共8种可能移动的方法。原题中的A点,就对应于矩阵中第5行第2列的位置。


扫描二维码关注公众号,回复: 13129960 查看本文章

为了解答这一题,我构造出了一条遍历矩阵中所有方格的路径,如下图所示。起点为左上角,标号为1,每走一步标号增加1。这样路径轨迹上的标号,就形成了一个从1到45的序列。图中标出了标号1到7的移动方向,作为示例。点A所在的方格,即图中标号32的位置,也显然在这条路径上。从A出发,沿着这条路径,不仅可以到达棋盘中的任意点,而且路径上的方格也不会重复走到。

因此,马从A点出发,是可以跳到半幅棋盘上的任意一点的。


另一种解法

这个问题的上述解法,是基于构造完成的,即构造出了一条遍历所有节点的遍历路径。每个点只走一次的路径,也叫做哈密尔顿路径。我认为还有另一个解法可以讨论。如下图所示,从某一个节点出发,只需要跳 3 步,即可到达相邻的位置。图中给出了以左上角和中心点这两个格子为起点的走法。这个操作所需的最大空间为3×4,所以半幅棋盘的空间足够让马跳到相邻的格子上。因此可以证明从任意方格出发,都可以在3步后到达相邻的位置。那么经过拓展,自然也就可以从任意方格出发,经过有限步,构造出一系列相邻的方格为路径,到达任意目标方格。所以起点为A时一定也能做得到,是这个结论的一个特例。




…… 后续问题探究 


上文证明了从 A 点出发,是能够跳到半幅棋盘上的任意一点的。那么现在问题来了,马从点A出发,能否跳遍半个棋盘,且每个点恰都只走到一次?如果能,为什么?如果不能,那从哪些点出发,可以跳遍半个棋盘,且每个点都只跳一次?


猜你喜欢

转载自blog.csdn.net/jwg2732/article/details/78516822