这道题需要空间想象能力,一个60x100的长方形。。。

2020/09/25

原题如下:

一个60x100的长方形,全部由1x1的小正方形组成,从长方形的一个角到其对角划一条直线,问,这条直线穿过了多少个正方形。穿过的定义是指直线从正方形内部穿过。如下图这样。









解析:

求直线穿过正方形的数量,我们不要画出来去数,这样很费时间,对建立解题思路也没有什么启发性。

先想想一个简单的问题:

直线穿过1个正方形,会有几个交点。

必然有2个交点,因为如果只有1个交点,就是擦边而过,不是穿过。如有3个交点,那不是直线能做的事。

那么反过来考虑,根据交点数是否可以计算出穿过的正方形数。

 

像下面这个例子,红色的对角线穿过了2条垂直线,1条水平线,总共有3个交点



中间这些交点属于两个相邻的正方形共有,在统计时我们要*2

那么加上两个顶角的交点,

2+3*2=8

穿过的正方形数:

8/2=4

 

如果是这种情况,直线穿过了一个小正方形的顶点




红色的对角线穿过了2条垂直线,1条水平线,总共有3个交点

但其中有两个交点重叠了(即正方形顶点),在统计时需要减去

内部总共的交点数:

3-1=2

穿过的正方形数:

2+2*2/2=3

 

这种思路应该是可以的。

也可这么想,数数看直线被分成几段了,这个跟穿过正方形数是一样的。

我们这次决定尝试一下数交点数的方法。

60X100的长方形,内部总共有99条垂线和59条横线,

对角的直线都会穿过这些垂线、横线

总共交点有 99 + 59

注意,这里面有没有小正方形的顶点?

假设最左上角的顶点为(00),最右下角顶点编号为(60100

这些编号的顶点都会被直线穿过(只考虑长方形内部)

35)(610)(915)。。。直到(5795

总共有19个点

所以内部的交点 99 + 59 – 19 =139

19个顶点重复统计了2次。

穿过的正方形数有

2+139*2/2 = 140 (个)

解毕


点评:

对于无法入手的问题,我们可以尝试把问题简化为一个规模不那么大的情形,进行分析和探讨,或者回想一下,是否有做过类似的问题,从简单入手,找出方案。进一步推而广之,向目标问题靠近。



这道题还有几个相对复杂的升级版本,一起来看看。

问题1

一个10x10x10的大正方体,由1000个单位为1的小正方体组成,一个钢丝从正方体一面穿入从另一面穿出,问,最多能穿过多少个小正方体。


解析:

直线每穿过一个小正方体,最多穿过其两个不同的面,如果从棱线或顶角穿入穿出,那么会相应减少所穿过的面的数量。

为简化问题,我们假设直线全部从面上穿过,即不经过棱或顶点。

那么在正方体内部直线穿过的面有:

前后共9个,左右共9个,上下共9

一共27个,这些面为两个小正方体共有,在统计时要*2

加上外部的2个面(一进一出)

穿过小正方体最多有(每个小正方体提供2个面):

27*2+2/2=28



问题2

小长方体尺寸为1*2*3,共有36块小长方体组成一个6*6*6的大正方体,如下图,问:其对角线CE穿过了几个小长方体。




解析:

这道问题更复杂一点,它规定了直线的路径,我们必须要考虑内部是否穿过长方体的棱边,或者顶点。可是对角线在正方体内部,不像上面的题,可以在平面上把图形画出来讨论。我们要通过想象力,建立立体模型,这是这道题的难点所在。

 

先考虑CE这条线在哪几个切面上?这里切面指把正方体切开后展示出来的面。

CE在这几个面上:

DCEFEBCHACGE

而不在DBFH

如果CE所在的切面穿过了长方体的棱线,那么CE也必然穿过此棱线。

关于上面这一点,不那么显而易见,但仔细考虑后应该能明白。

 

现在来进行计算。

对角线CE穿过的面有:

前后2个,上下5个,左右1个,共8

考虑内部穿过的棱线有3条(具体如图示),

穿过一条棱,等价于同时穿过了两个面,

穿过一个顶角,等价于同时穿过了三个面(这里没有穿过顶角的情况)

在统计面时应该减掉过棱的次数,所以穿过的小长方体数有:

((2+5+1-3)*2+2)/2 =6个


如果我们第一次碰到的就是最后这一道题,不一定能分析出结论。

但是,如果我们从最简单的平面分析开始,

一步一步往下走,走到最后的结论应该不难,至少是有考虑的方向了。

这应该就是我们常说的数学解题思维吧。