从下面这个图形,你能数出多少个正方形?

这个看似简单的问题难道了不少数学爱好者,你也来试试?

问题

从下面这个图形,你能数出多少个正方形?

解决方案

方案一

第一次面对这类题目时,很多人下意识的解决方法是数格子,没错,一个一个把整个图所包含的正方形数出来,最后得出结论:图中所包含大大小小的正方形一共有30个。

这是一个正确的答案。但得出这个正确答案的代价,是耗费掉不短的时间,以及形形色色因数多或数少而产生的错误答案。如果图形更复杂一些甚至复杂得多,数格子这样的方法还能应付得过来吗?或者说,是否存在比数格子更方便、更有效的解决方法?

答案是肯定的,即方案二:数学公式法。

方案二

为解决此题目及其更复杂的推广形态,我们需要创建一种普适性的方法,即:N ×M(N ≤ M)的方格中,存在多少个正方形?

1

建立一个坐标系,设方格左下角为坐标原点,方格边长为单位S,纵坐标与横坐标轴分别为N和M。

2

N×M方格中有多少S×S的正方形?

解:以正方形左下角点的坐标标记该正方形,显然方格与这些点的坐标一一对应,这些点的纵坐标取值方位在0至N-S之间的整数点(包括0与N-S),横坐标取值在0至M-S之间的整数点(包括0与M-S),所以共有(N-S+1)(M-S+1)点,即共有(N-S+1)(M-S+1)个S×S的正方形;

当S=1时,很容易看出,一共有NxM个1x1阶正方形;

当S=2时,正方形少了一行一列,即:存在(N-1)(M-1)个2×2正方形;

当S=3时,正方形又比S=2的时候少了一行一列,即:(N-2)(M-2)个3×3正方形;

依此类推,S=S时,有(N-S+1)(M-S+1)个SxS正方形;

最后,将所有正方形数相加。

3

取S=1、2……N,求和既得到所有正方形个数=1×(M-N+1)+2×(M-N+2)+...+N×M
当N=M时,根据平方和公式,正方形个数=1×1+2×2+...+N×N=N(N+1)(2N+1)/6;

4

因此,在原题中N=4,则最终答案为:4 ×(4+1)×(2×4+1)/ 6=30。

小结

就此题而言,虽然方案二在建立数学公式的过程中耗费了比方案一更多的时间,但建立这个公式的意义要重要得多,即:今后在面对诸如此类甚至更加复杂的问题时,我们可以通过公式用最短的时间得出最正确的答案。这正是方法论与“知其然但不知其所以然”的最大区别。

此外,我们可以就此解决方案进行一般化拓展:考虑NxM的格子里,有多少长宽比为T/S的长方形,计算方法类似,但求和过程要更加复杂一些,有兴趣的读者可以在本题解决方案的基础进行进一步推理。

作者:NKLiang;高校数学教授,科普作者。