序章

收集一些有趣的小问题,活跃一些思维。

一道著名的毒酒问题

题目

有1000 桶酒,其中1 桶有毒。而一旦吃了,毒性会在1 周后发作。

现在我们用小老鼠做实验,要在1 周内找出那桶毒酒,问最少需要多少老鼠。

思路

需要10只老鼠就可以。

10只老鼠按从左到右的顺序编好号1-10,同时每桶酒通过二进制的方式编上号。编号需要写满10位,不够十位数的前面添度0补满。分别取数位和老鼠的位置一一对应知,把酒给相应位置上是1的老鼠喝。

比如第70桶酒,70转换回成二进制就是0001000110,那么就给第四、八、九只老鼠喝。

最后按死掉道的老鼠是哪几只,然后排成二进制,再转成十进制就是第几桶酒。

比如最后死掉第三、属七、八只老鼠,那么就是0010001100,转换成十进制就是140。

10只老鼠最多可检测2^10=1024桶酒。

不均匀的绳子

题目

烧一根不均匀的绳,从头烧到尾总共需要1 个小时。

现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?

思路

关键在于不均匀,不然就更好处理了,就是在折半,折半,就好理解了。

关键在:两头烧。

A绳从两头烧,同时B绳只烧一头,30分钟后,A烧完了,同时B绳另一头也点燃,开始两头烧,烧完是15分钟

加起来就是45分钟。

一个小时十五分钟,那就再取一根C绳从两头烧,烧完30分钟,正好!

诚实与谎言

题目

一个岔路口分别通向诚实国和说谎国。

来了两个人,已知一个是诚实国的,另一个是说谎国的。

诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,

但不知道应该走哪条路,需要问这两个人。请问应该怎么问?(20秒-2分钟)

注意:只能有一次提问机会,单独问一人和一起问都可以。

分析:

你直接问那两个人:“请问你们的国家怎么走。”

诚实国的会告诉你诚实国的去法。 说谎国的因为说谎,所以告诉你的也会是诚实国的去法。 所以你走另外那条路就市说谎国了。

这题的本质,实际上是非的问题。

同一颜色的果冻

题目

你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。

抓取多少个就可以确定你肯定有两个同一颜色的果冻?(5 秒-1 分钟完成)

思路

分析:

1、里面有三种颜色时,需要4个

2、里面有2种颜色时,需要3个

3、里面有1种颜色时,需要2个

所有抓取4个就可以确定有2个同一颜色的果冻了。

就是比所有的颜色多一个,这个实际上是数学上的抽屉原理。

4 公升的水

题目

如果你有无穷多的水,一个3 公升的提捅,一个5 公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出 4 公升的水?(40 秒-3 分钟完成)

分析

分析:

1、只要称出1公升的水即可,(在加3公升)

把满的3公升桶中的水倒入5公升桶中,再一次把3公升桶中的2公升倒入5公升

这个时候3公升桶只剩1公升水。

2、3公升的桶空出1公升,再把5公升水倒1公升过去,也能得到4公升

把5公升倒入3公升,剩余2公升,把3公升桶倒干净,把剩下的2公升水倒入3公升桶。

额头牌的颜色

题目

有4张红色的牌和4张蓝色的牌,主持人先拿任意两张,剩余6张再分别在A、B、C三人额头上贴任意两张牌,

A、B、C三人都可以看见其余两人额头上的牌,看完后让他们猜自己额头上是什么颜色的牌,

A说不知道,B说不知道,C说不知道,然后A说知道了。

请教如何推理,A是怎么知道的。

如果用程序,又怎么实现呢?

分析:

ABC三人头上的组合有三种:rr、bb、rb

主持人拿掉的两张牌

1、rr   剩余rrbbbb,则:

        bb、bb、rr       C是可以知道自己是什么牌的

        rb、 rb 、bb      

2、bb 剩余rrrrbb ,则:

        rr、rr、bb       C也是可以知道自己是什么牌的

        rb、rb、rr

       

3、rb 剩余rrrbbb,则:

        rb、rb、rb     依次这样分析,最后符合答案的就是这种组合

        rr 、rb、bb    B是可以知道自己什么牌的

报酬问题

题目

你让一些人为你工作了七天,你要用一根金条作为报酬。金条被分成七小块,每天给出一块。

如果你只能将金条切割两次,你怎样分给这些工人?

分析

切割两次,分出三块 1、2、 4.

第一天 付1

第二天 收回1,付2

第三天 付1(1+2)

第四天 收回1、2 付4

第五天 付1 (4+1)

第六天 收回1 付2(4+2)

第七天 付1 (4+2+1)

开关的控制

题目

有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关,

这两个房间是分割开的,从一间里不能看到另一间的情况。

现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的。

有什么办法呢?

分析

只用开和关两个属性,不能区分三种东西,所以需要引入第三属性,例如温度、闪烁等等。

解法

先进开关房,打开第一个开关,开半个小时再关掉,再打开第二开关,迅速到有灯的房间,可见

不亮但热的是由第一个开关控制,亮着的是第二个控制,不亮不热的是第三个控制.

天平

题目

12 个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。

13 个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)(5 分钟-1 小时完成)

分析

分析:

由于并未说明那个球的重量是轻是重,所以6、6分组,三次是做不到的。

4、4、4分组,①②③④    ⑤⑥⑦⑧    ⑨⑩⑪⑫分别为A、B、C

第一次称:

①②③④   > ⑤⑥⑦⑧ ①②③④   < ⑤⑥⑦⑧

说明不正常球在这8个球里面,⑨⑩⑪⑫正常,但不知比正常的轻还是重

                  第二次称:天平一边放3个:

                  ①②⑤   > ③⑥⑨     说明不正常球在①②⑥中,因为他们位置没有变化

                                     第三次称:

                                    ①⑥   > ⑨⑩  那么①为不正常球

                                    ①⑥   < ⑨⑩  那么⑥为不正常球,而且⑥较轻

                                    ①⑥   = ⑨⑩  那么②为不正常球

                 ①②⑤   < ③⑥⑨  说明不正常球在③⑤中,因为他们交换过位置

                                   同理

                 ①②⑤   = ③⑥⑨  说明不正常球在④⑦⑧中

                                   同理

①②③④   = ⑤⑥⑦⑧

说明不正常球在⑨⑩⑪⑫中

                第二次称:

                ①②③ = ⑨⑩⑪  则⑫不正常

                ①②③ > ⑨⑩⑪  则不正常球在⑨⑩⑪中,且不正常球较轻

                               第三次称:

                                ⑨ = ⑩ 则⑪不正常

                                ⑨ > ⑩ 则⑩不正常

                                ⑨ < ⑩ 则⑨不正常

                ①②③ < ⑨⑩⑪  则不正常球在⑨⑩⑪中,且不正常球较重

划线

题目

在9 个点上画10 条直线,要求每条直线上至少有三个点?(3 分钟-20 分钟完成)

分析

图

时钟

题目

在一天的24 小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?(5 分钟-15 分钟完成)

分析

注意:

时针和分钟是移动着走

秒针是跳着走,意味着,秒针只能是整数。

时钟:角速度w=360°/12小时=30°/小时=0.5°/min

分钟:w=360°/60分钟=6°/min

假设某一时刻时针和00:00:00时针的顺时针方向夹角为x度。

则此时分针和00:00:00时针的顺时针方向夹角为12x-n*360度

(n为使12x-n*360大于0且小于等于360的最小自然数)

x=12x-n*360

x=(n*360)/11

12点和24点的时候,共2次

答案

很明显,秒针转一圈,分针会动一次,分针转一圈,时针会动一次。总共22次。

相邻两次重合之间所需时间相同,即12/11小时。准确说都分别是0点,12/11点,24/11点,36/11点,48/11点,60/11点,72/11点,84/11点,96/11点,108/11点,120/11点,12点,144/11点,156/11点,168/11点,180/11点,192/11点,204/11点,216/11点,228/11点,240/11点,252/11点。

有趣的是这11个点,正好是圆内接正11边形,其中一个顶点在12点处。

所以,1:05之后有一次,2:10之后有一次,3:15之后有一次,4:20之后有一次,5:25之后有一次,6:30之后有一次,7:35之后有一次,8:40之后有一次,9:45之后有一次,10:50之后有一次,12:00整有一次。24小时之中总共22次。

小结

希望本文对你有帮助,如果有其他想法的话,也可以评论区和大家分享哦。

各位极客的点赞收藏转发,是老马持续写作的最大动力!

参考资料

https://www.jianshu.com/p/6db5e1ae81d1

https://www.jianshu.com/p/dde956b8c150

面试题:毒酒问题

算法题28 配对比较—有一堆1万个石头和1万个木头,对于每个石头都有1个木头和它重量一样,把配对的石头和木头找出来

烧一根不均匀的绳,从头烧到尾总共需要1个小时。 现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?

每天一道笔试题

横空出世,席卷互联网–评微软等公司数据结构+算法面试100题