偷金球

来自计算思维百科
跳转至: 导航搜索
偷金球1.png

一个吝啬的老财主省吃俭用了大半辈子,终于赚得了20个金球。这些金球几乎是他一生的积蓄,所以他非常珍惜,专门定做了一个长方形的箱子。如右图,箱子里面紧紧塞着这20个金球。每个球都被其他球卡住,所以无论箱子如何动,这些球都不会在箱子里滚动。老财主将箱子锁得牢牢的,但仍不放心,每天晚上都要晃动一下箱子,听里面是否有滚动的声音,从而来确定金球有没有丢失。

一天一个聪明的仆人想偷走一些金球,那么他最多能拿出几个球,还能保证剩下的球不会在箱子里面滚动(当然不能一个不留,那样重量差别太大更容易被发现)?

解决方案

方案一-蛮力法

为了使得拿走金秋后剩下的金球依然不晃动,仆人可以一个一个地试着取金球,如果取出金球后箱子不晃动则取出,否则放回金球,试取下一个。根据图片我们很容易可以看出,中间一行的金球一定不能取走,因为一旦中间有金球被取走,那么与之相邻的金球就会移动。因此,我们只能从第一行和第二行下手。如下图所示,最多可以取走6个球。

偷金球2.png

运用的计算思维

上述解决方案其实是蛮力法,因为我们需要对每个球进行考虑,取走后是否影响整体的稳定,这是一种机械化的思维方式

方案二-规律运用

根据三角形的稳定性,我们不难知道只要金球的内接等边三角形顶点被固定住,那么该金球肯定就是稳定的。

偷金球3.png

观察下面箱子中金球的摆放方式,我们可以发现大多数金球都不止一个固定点,因此,我们只要保证每个金球在内接等边三角形顶点上是固定的就可以了。

偷金球4.png

运用的计算思维

我们知道三角形是稳定的这个规律,将其运用到实际问题中,运用的是“学习”的计算思维。

参考文献

《逻辑思维训练500题(白金版)》 清华大学出版社