如何通过建模快速求解任意倒水问题?

如何通过建模快速求解任意倒水问题?

首页休闲益智猜水容量更新时间:2024-07-29

业余时间,我们会遇到很多消遣性的题目,比如下面这个,如何借助两个已知容量的容器将一个盛满液体的容器中的液体倒出一部分来。

下面我们来看一个例子。

一只12升的水杯盛满了水,另有两只分别是9升和5升的空水杯,怎样利用这两个空杯把杯子里的12升水平均分为两份?

其实,我们不需要真的拿水杯做实验来解答这个问题。只要我们把这个过程以表格的形式画出来就可以了。只要经过不停地尝试,一般我们是能够找到解决办法的,不过耗费的时间可能会比较长。

但是如果这时要求增多了,如倒出2杯6升、5升的水,2杯5升、5升的水,2杯4升、3升的水,2杯1升、2升的水……想要很快地解决这么多的要求,就很难办了。

那么有没有一种通用的快速的解决问题的办法呢?

最近,我在图书馆看到一本国外的科普书《天啊,几何还能这样学》,里面就介绍了一种解决倒水问题的通用办法,这种方法很实用,能够快速地解决倒水问题。

这个方法的解题思路是通过建模,将倒水问题转化为几何问题。

一、建立模型

如上图所示,我们建立了一个几何模型OADCB,这个模型有以下特点:

1、模型中OA平行于BC,OB平行于AD,角AOB可以是0~180之间除0与180之外的任意角度。

2、OA的长度为9,代表着9升的水杯中的水量,OA被a1~a8平分为9等份。

3、OB的长度为5,代表着5升的水杯中的水量,OB被b1~b4平分为5等份。

4、AD长度等于12-9=3,代表12升水杯中的水倒满9升水杯最多还能往5升水杯中倒入3升水,AD被d1、d2平分为3等份。

5、BC长度等于12-5=7,代表12升水杯中的水倒满5升水杯最多还能往9升水杯中倒入7升水,BC被c1~c6平分为7等份。

6、CD上的点代表12升水杯中的水已全部倒入9升、5升水杯中,BC被d4平分为2等份。

二、模型上点的坐标及其含义

如果我们以OA为x轴,OB为Y轴,12升水杯中剩余的水量表示Z轴上的数字。那么,我们就能表示出OA、OB、BC、CD、AD上任意一点的坐标。

下面我举几个例子:

1、O点坐标(0,0,12)表示9升、5升、12升水杯中水量分别为0、0、12,这时12升水杯中的水量等于OA AD=9 3=12。

2、a2点坐标(2,0,10)表示9升、5升、12升水杯中水量分别为2、0、10,这时12升水杯中的水量等于a2A AD=7 3=10。

3、d1点坐标(9,1,2)表示9升、5升、12升水杯中水量分别为9、1、2,这时12升水杯中的水量等于d1D=2。

4、d4点坐标(8,4,0)表示9升、5升、12升水杯中水量分别为8、4、0,这时12升水杯中的水量等于0。

5、c3点坐标(3,5,4)表示9升、5升、12升水杯中水量分别为3、5、4,这时12升水杯中的水量等于c3C=4。

6、b2点坐标(0,2,10)表示9升、5升、12升水杯中水量分别为0、2、10,这时12升水杯中的水量等于b2B BC=3 7=10。

从中,我们可以发现,模型中所有点的坐标代表了各个水杯中剩余水量的所有情形

三、倒水过程特征分析

接下来我们结合模型来分析倒水过程有哪些特征:

1、5升水杯倒出水过程分析:

如果我们将5升水杯中的水倒入9升或者12升水杯中,只可能出现下面2种情况。

a、可以将水杯中剩余的水全部倒入12升、9升水杯中,这时5升水杯中剩余水量为0,对应模型中OA上的点。

5升水杯中剩余水为0,这时只有线段OA上的点满足要求

b、可以将5升水杯中水部分倒入9升水杯中,这时9升水杯盛满水,5升水杯剩余水量不为0,对应模型中d1D上的点。

9升水杯盛满水,5升水杯剩余水量不为0,这时只有AD上除A以外的点满足要求

2、9升水杯倒出水过程分析:

如果我们将9升水杯中的水倒入5升或者12升水杯中,只可能出现下面2种情况。

a、可以将9升水杯中剩余的水全部倒入12升或者5升水杯中,这时9升水杯中剩余水量为0,对应模型中OB上的点。

9升水杯中剩余水为0,这时只有线段OB上的点满足要求

b、可以将9升水杯中部分水倒入5升水杯中,这时5升水杯盛满水,9升水杯中剩余水量不为0,对应模型中c1C上的点。

5升水杯盛满水,9升水杯剩余水不为0,这时只有线段BC上除B以外的点满足要求

3、12升水杯倒出水过程分析:

如果我们将12升水杯中的水倒入5升或者7升水杯中,只可能出现下面2种情况。

a、可以将水杯中剩余的水全部倒入5升、9升水杯中,这时12升水杯中剩余水量为0,对应模型中CD上的点。

12升水杯中剩余水为0,这时只有线段CD上的点满足要求

b、可以将12升水杯中部分水倒入5升水杯中或者9升水杯中,,这时5升水杯盛满水或者9升水杯盛满水,12升水杯中水量不为0,对应模型中Ba6、Ad2上的点。

这时除点C、D外,线段BC、AD上其他的点均满足要求

通过上述分析,我们能发现以下规律:

1、每次倒完水,只会出现2种情形:

a、12升、9升、5升水杯中,至少有1个水杯的水量为0

b、12升、9升、5升水杯中,至少有1个水杯倒满了水

2、因为倒水未开始前的状态是点O,因此,整个倒水过程,各水杯中的水量,只可能用线段OA、OB、BC、CD、AD上的点表示,无法用OADCB内的点表示。

四、模型中的倒水线路分析

有了上面3个结论,我们就能分析出每次倒完水所对应模型中的线路是怎样的:

我们取a2点(2,0,10)进行分析,此时9升、5升、12升水杯中水量分别为2升、0升、10升。

1、a2点在OA上的运动。

a、首先,我们可以肯定,a2(2,0,10)可以运动到O(0,0,0)、A(9,0,3)点。

如:从a2(2,0,10)运动到O(0,0,0)点,对应的倒水动作是,将9升水杯中的水全部倒入12升水杯中。

如:从a2(2,0,10)运动到A(9,0,3)点,对应的倒水动作是,将12升水杯中的水倒满9升水杯。

b、a2点能否运动到OA上除O、A之外的其他点?如a1、a3……

如:从a2(2,0,10)运动到a3(3,0,9)点,对应的倒水动作是,将12升水杯中的水往9升水杯中倒入1升水。我们知道这是不可能办到的。

同理从a2(2,0,10)运动到OA上除O、A之外的其他点也是不可能的。

结论:a1~a8点在OA上只能运动到线段OA两端点(O、A)。

2、a2点往OB上运动。

a、首先,我们可以肯定,a2(2,0,10)可以运动到b2(0,2,10)点。

这时的倒水动作是,将9升水杯中的2升水全部倒入5升水杯中。(在三角形Oa2b2中,Oa2=Ob2)

b、a2点能否运动到OB上除O、b2之外的其他点?如b1、b3……

如:从a2(2,0,10)运动到b3(0,3,9)点,对应2步倒水动作,步骤1是将9升水杯中剩余的2升水全部倒入5升水杯中,对应的路线是a2b2,步骤2是将12升水杯中水往5升水杯中倒入1升水,对应的路线是b2b3。

我们知道这是不可能的,首先是倒水用了2个步骤,与我们每次只能倒1次水是不符的,其次b2到b3这个步骤的倒水,前面我们已经分析这是不可能的。

结论:a2点往OB上运动,只能运动到b2点。

3、a2点往BC上运动。

a、首先,我们可以肯定,a2(2,0,10)可以运动到c2(2,5,5)点。

这时的倒水动作是,将12升水杯中的水倒满5升水杯,9升水杯中剩余2升水不变。

b、a2点无法运动到BC上除a2外的其他点,因为运动到其他点至少需要运动2步。

4、a2点往CD、AD上运动。

我们知道这是不可能的,因为a2无论运动到d1、d2、D、d4、C中的哪一点,都至少需要2步。

从上面的分析,我们发现:

1、a2点只能运动到O、A、b2、c2这4个点上。

2、同理b3只能运动到O、B、a3、D这4个点上。

3、同理c4只能运动到B、C、a4、A这4个点上。

……

(除端点以外的其它点都有4个运动选择)

4、端点O只能运动到A、B两点,端点A、D、C、B均有3个运动选择

如端点A只能运动到点O、C4、D上。

五、用模型解决倒水问题

有了上面的结论,我们只需在模型中画出我们需要的线路,这样我们的问题就自然而然地得到解决了。

这时,倒水问题就转变为几何画图问题。

要将12升的水平分为2份6升,模型上对应的点是a6(6,0,6),我们只需要从a6点逆向出发,找到到达O点的路线,再将线路倒回来,就得到了解题的办法了。

运用这种思路,我们很快就能得到3条线路:

1、线路1:O-B-a5-c5-d1-b1-a1-c1-a6。(8步)

上面线路中的倒水过程,我们用表格的形式画出来:

2、线路2:O-B-C-a7-c2-a2-b2-d2-c6-a6。(9步)

上面线路中的倒水过程,我们用表格的形式画出来:

3、线路2:O-A-c4-a4-b4-d4-a8-c3-a3-b3-D-C-a7-c2-a2-b2-d2-c6-a6。(18步)

上面线路中的倒水过程,我们用表格的形式画出来:

这种建模方法,我们还可以进行推广,用来解决其他类型的倒水问题。

好了,今天的分享就到这里了。

我是科学发现之历程,一个致力于科普数学、物理的科技媒体。想了解更多相关的知识,关注微信公众号科学发现之历程,期待你的到来~

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved