倒水的学问

来自计算思维百科
跳转至: 导航搜索
倒水的学问1.jpg

在一个盛有900ml水的水壶和两个空杯子,一个能盛500ml,另一个能盛300ml.如何倒水才能使得每个杯子都恰好有100ml?(注:不允许使用其他容器,也不允许在杯子上做标记。)

倒水的学问2.png

解决方案

注:杯子下面的数值表示完成箭头所示的操作后的值。

(1)把两个杯子都倒满,然后将水壶的水倒掉;

倒水的学问3.png

(2) 接着将300ml杯子内的水全部倒回水壶,把大杯子的水往小杯子倒出300ml,再把300ml倒入水壶;

倒水的学问4.png

(3)再将大杯子剩下的200ml水倒入小杯子,把壶里的水注满大杯子500ml,这样,壶里剩余100ml。

倒水的学问5.png

(4)再将大杯子的水注满小杯子(倒出100ml),再将小杯子的水倒掉,再从大杯子将小杯子注满,把小杯子的水倒掉,最后将水壶的100ml倒入小杯子。

倒水的学问6.png

此时,每个杯子都只有100ml水。

倒水的学问7.png

运用的计算思维

在这个问题中,我们可以发现两个杯子的总容量为800ml,而水壶的容量为900ml,恰好相差100ml。而希望达到的要求即是每个杯子装100ml水。在倒水的过程中,我们首先将水壶的水达到100ml,然后借助小杯子的剩余容量100ml倒出了大杯子的100ml,再借助300ml的容量倒出了300ml,最后使得大杯子达到100买了的水量。在整个过程中,至关重要的就是如何先使得任一个容器达到100ml的可测容量。先解决100ml的容量差,利用这100ml就可以解决整个问题。在计算思维中,嵌入思维就是通过利用某个已解决的子问题去一步步解决复杂问题,而这个案例中通过先达到的100ml的容量差来一步步接近问题解,也正是嵌入思维的一个体现和应用。

参考文献

[1] 《越玩越聪明的600个数学思维游戏》 化学工业出版社