挑战经典逻辑面试题:如何使用少于15L的水,用2个水壶从池塘里取得3升水

温柔似野鬼°
882次浏览
2021年01月21日 02:28
最佳经验
本文由作者推荐

6字游戏名-

2021年1月21日发(作者:陶焘)
挑战经典逻辑面试题:
如何使用少于
15L

水,用
2个水壶从池塘里取得
3
升水

这是一道经典的逻辑面试题
! < br>不管你是产品经理,还是程序员,面试的时候都会经常看到。
在面试场景下,一般人
5- 10
分钟内会给出答案。如果此时的面试官变换考察形式,在给出
一个解题答案的基础上,让你 进行优化,你是否能够有更好的解决办法呢?

题目:

假设有一个池塘,里 面有无穷多的水。现有
2
个空水壶,容积分别为
5
升和
6
升 。问题是
如何只用这
2
个水壶从池塘里取得
3
升的水。


我们的答案是:

1.

5L
桶装满水,倒入
6L
桶,此时
6L
桶有
5L
水;

2.
再次将
5L
桶装满水,倒入
6L
桶,
6L
水满,< br>5L
桶还剩
4L
水;

3.

6L
桶的水倒空,将
5L
桶中剩余的
4L
水倒入
6L
桶,此时
6L
桶有
4L
水;

4.

5L
桶再次装满水,将
6L
桶的水注满,
5L
桶剩余
3L
水。

全过程用水
15L



挑战:
比此方案少用水的同学,贴出你的答案,思路和过程,答案无重复的第一人将获得
30C

和俱乐部
30
积分










有一个投机取巧的方法是,一个桶,倾泻倒水,倒至露出桶底的棱的一刻,正好是半桶水,
so 6L / 2 = 3L


灌水有技巧。





1.6L
的桶装满水,倒入
5L
的桶,
6L
的桶 剩
1L
,再把
5L
的水倒没,把剩的
1L
倒入
5L

在桶中做一个记号;

2.6L
的桶装满水,倒入
5L< br>的桶,
6L
的桶剩
2L


3.
看着
5L
桶的记号往出倒水,剩到记号位置的
1L
水;

4.
两个桶里的水倒在一起,共为
3L
,总共用水
12L






6L
的桶装满水,桶底有两个半径相等的洞,
5L< br>的桶在其中一个洞口接水,
6L
的桶里面的
水流完,则
5L
的 桶里面就有
3L
的水了。总共
6L



1.6L
的桶装满水,倒满
5L
的桶,
6L
桶剩下
1L
水,倒掉
5L
桶里的水,把
6L
桶里的
1L
倒入
5L
桶中;

2.6L
桶装满水,倒满
5L
的桶,
6L
桶剩下
2L
水,倒掉
5L
桶里的水,把
6L
桶里的
2L
水倒

5L
桶中;

3 .6L
桶装满水,倒满
5L
的桶,
6L
桶里剩下
3L
水。





找根绳子,一段系一个桶,中间吊着,假 设
5L
的轻就在
5L
中装水使之平衡。然后
6L
中装
满,往
5L
中倒,等平衡后,
6L
中装水就为
3L
(平衡 原理)




1

6
升的水壶装满,倒
5
升到沧
5
升的水壶中,此时
6
升水壶中有
1升水。

2
、将
6
升水
壶放到池塘水面,浮力把它浮起 来,记住吃水深度。

3
、把
5
升水壶倒空,再把
6
升水壶中

1
升水倒到
5
升水壶中。

4


6
升水壶放到水面,根据吃水深度,
使得
6
升水壶里 达到
1
升水,再把

6
升水壶的水倒到
5
升水壶中。

5
、重复
4
步骤。




步骤如下:

1.
状态:
6L
的桶装满水,
5L< br>的是空桶。将
6L
桶中的满水倒入
5L
的空桶中,此时
6L< br>的桶
中剩下
1L
的水,再把
5L
的桶中的水清空。将
6L
桶中剩下的
1L
的水倒入
5L
的桶中。

2.
状态:
6L
的桶装满水,
5L
的桶装有
1L
的水。 将
6L
的装满的水倒入
5L
的装有
1L
水的
桶中,
6L
的桶中剩下
2L
的水,像步骤一样。把
5L
的桶中的水 清空,倒入
2L
的水。

3.
状态:
6L
的桶装满 水,
5L
的桶装有
2L
的水。将
6L
的桶中的水倒入
5L
的桶中后,
6L
的桶中剩下的水即是
3L






1.

6
升水倒入
5< br>升桶,
6
升桶余
1
升水,
标记
1
升水位置,
5
升桶水倒出,
6
升桶中
1
升水
倒入
5< br>升桶。

2.
利用标记用
6
升桶分别再取两次
1升水倒入
5
升桶中,得到
3
升水。

共用了:
8
升水!











如果按图上的描述两个桶只有高度上的差距的话,有个解法:

1.
将两个桶 水平放好,
5L
桶倒满,再倒入
6L
桶,再把
5L
桶倒满, 得到两个
5L
的水。
(共
用水
10L


2.

5L
水部分倒入
6L
,将
6L
倒满,这样就 一个
4L
一个
6L
,按照
4L
的高度标记,将
6L
水倒出一部分,跟
4L
水平,就得到两个
4L
。(此步骤没用水)< br>
3.

5L
桶加满(加
1L
即可),再倒入
6L
桶,这样
5L
桶就只剩
3L
了。
(此步骤用掉
1L


所以共用掉
11L
水。(看了下题目,感觉常规解法做不 到,于是只有想这些投机取巧的方
法了)







分析:从题目来看这两个桶是形状相同,但容积不同的桶。解析如下:

1.

6L
桶取满水。(此步骤消耗
6L
的水)

2.

6L
水倒置在
5L
桶上,此时
5L
桶满,溢出的
1L
水在
6L
桶里,再将两桶平方地面,使
5L
桶里的水倒的跟
6L
桶里水相同,
同理,
5L
桶里水剩
1 L


6L
桶里的
1L
倒入
5L
桶里,< br>5L
桶里剩
2L
水。所有的水都是基于步骤
1
所取的水。(此 步骤不消耗水)

3.

6L
桶装满水,
再倒置在
5L
桶上,
上一部
5L
剩余
2L
水,
此时有
3L
水溢出在
6L
桶中。
(此步骤消耗
6L
水)

共消耗
12L


进一步理解见图:

我觉得用杠 杆原理是可行的,假设
6L
桶重为
k6,5L
桶重
k5,
第 一次称重,假设两边刻度为
2,3
;则
k6 * 2 = k5 * 3
;然后将
5L
水倒入
5L
的桶中可以得到,
(k5 + 5) * 2 = (k6 + 3) * y;

中根据上面假设条件来看,
k5, k6
是已知的,我们可以计算出
y = ((k5 + 5) * 2)/((k6 + 3));

后就出来了,在第二次称重的时候,
k5
这边杠杆长度保持原有 刻度
2
,调整
k6
这边的杠杆
长度为
y = ((k5 + 5) * 2)/((k6 + 3))
,然后往
6L
桶中倒水直至杠杆平衡,这个时 候
6L
桶重水

3L
,总共用水
8L
你的方案原理是可行的。

但下面两个公式,他们的关联在哪里?如果第一个公式
“k6 * 2 = k5 * 3”
的目的是找到平衡点并记录,那么
第二个公式就应该为
(k5 + 5) *
3
= (k6 + 3) * y,
而不是
“(k5 + 5) *

2

= (k6 + 3) * y;”
。你觉得呢?







标记法,无论透明不透,只要我手能 伸进去就可以,我用大桶,打
6
升水,倒给
5
升的,留
1
升 ,做好标记,倒掉,然后,小桶往大桶里倒
1
升,
5-1 =4-1=3
;用了
6


前提是,我手能进去,不规则形状等特殊 情况除外,桶是金刚做的,我指甲划不破,那我也
没办法。另,题目上单位是升,水的质量不一定是1

1
,换算成质量,不符合逻辑,好比
变量类型不同,会报错的

还有种只用
5
升的办法,但是有个前提,
6
升水的桶,底部可以 拆卸,放到上面,那么,我

5
升水,倒入
6
升桶,做好标记,把水 倒回
5
升,然后把
6
桶倒过来,标记就在下面,盖
子?底?装上~
用上面的倒
1
升水办法,
只要
5
升,
因为题 目给出的容器最小值是
5

所以,
5
是最少的了,只用
3< br>升,特殊形状可以,圆桶就比较难

特殊形状
6
升容器,正方体,一根 绳子吊住一个角,放下去,捞起就是
3

6字游戏名-


6字游戏名-


6字游戏名-


6字游戏名-


6字游戏名-


6字游戏名-


6字游戏名-


6字游戏名-