互联网面试题之趣味数学题

1         有1000桶酒,其中一桶有毒。而一旦吃了,毒性会在一周内发生。现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠?

思路

10只老鼠按顺序排好每桶酒按照编号转换成二进制,给相应位置上是1的老鼠喝。最后按死掉的老鼠是哪几只,然后排成二进制,再转成十进制就是第几桶酒。比如:第70桶酒有毒,70转换成二进制就是0010001100,那么就给第三、四、八只老鼠喝,这三只老鼠都将死亡。如果最后死掉第三、七、八只老鼠,那么就是0010001100,转换成十进制就是140,即140桶酒有毒。

 

2         有一堆1万个石头和1万个木头,对于每个石头都有1个木头和它重量一样,把配对的石头和木头找出来。

思路

1)       可以对木头和石头分别排序,然后一一对应配对;

2)       选一个石头,在木头中寻找配对,依次类推;

3)       结合以上两个办法,对木头排序,然后取一个石头,匹配对应木头(木头已排序,不需要搜索直接配对);

排序方法如下:

把木头扔到水里,根据吃水深度排序;把石头从等高的足够光滑的斜坡滑下,根据水平滑动距离排序,然后二者一一对应。

 

3         多人排成一个队列,我们认为从低到高是正确的序列,但是总有部分人不遵守秩序。

如果说,前面的人比后面的人高(两人身高一样认为是合适的),那么我们就认为这两个人是一对“捣乱分子”,比如说,现在存在一个序列:176, 178,180, 170, 171。这些捣乱分子对为:<176, 170>, <176, 171>,<178, 170>, <178, 171>, <180, 170>, <180, 171>。

那么,现在给出一个整型序列,请找出这些捣乱分子对的个数(仅给出捣乱分子对的数目即可,不用具体的对)。

思路

可以采用求逆序对的方式来进行解答。

 

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

思路

a绳从两头烧,同时b绳从一头烧,当a绳烧尽时,灭掉b绳,同时c绳从一头烧,在c绳烧尽时,b绳从两头烧,结束时即为1小时15分钟。

 

5         你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?

思路

4个,抽屉原理。

 

6         如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?

思路

1)       用5升桶满桶,倒入3升桶中,倒满后大桶里剩2升;

2)       把3升桶倒空,把那2升倒入3升桶中;

3)       用5升桶满桶再向3升里倒,倒入一升就满,大桶里剩下的是4 升。

 

7         一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问?

思路

问“你的国家怎么走?” 他们都会指向诚实国或问哪条路不到你的国家, 他们都会指向说谎国

 

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

思路

分三组:每组四个,第一组编号1-4,第二组5-8,第三组9-12.

第一次称:天平左边放第一组,右边放第二组。

A 第一种可能:平衡。则不同的在第三组。 

接下来可以在左边放第9、10、11号,右边放1、2、3号三个正常的。

a.如果平衡,则12号是不同的;

b.如果左重右轻,则不同的在9、10、11号中,而且比正常球重。再称一次:9放左边,10放右边,如果平衡,则11号是不同的;如果左重右轻,则9号是不同的,如果右重左轻,则10号是不同的。

c.如果左轻右重,道理同b

 

B 第二种可能:左重右轻,则不同的在1-8号中,但不知比正常的轻还是重。 

第二次称:左边放1、2、5号,右边放6、9、3号。

a.如果平衡。则不同的在4、7、8中。可以称第三次:左边放4、7,右边放9、10。如果平衡,则8是不同;如果左重右轻,则4是不同;如果左轻右重,则7是不同。

b.仍然左重右轻。则不同的在位置没有改变的1、2、5中。可以称第三次:左边放1、5,右边放9、10。如果平衡,则2是不同; 如果左重右轻,则1是不同;如果左轻右重,则5是不同。

c:左轻右重。则不同的在6、3中,因为只有它们改变了原来的位置。可以称第三次:左放6,3,右放9,10。如果左轻右重,则6是不同,如果左重右轻,则3是不同。

 

C 第三种可能:左轻右重,道理同B ,至此,不论发生任何情况,称三次都可以找出不同,而且知道比正常的轻了还是重了。

 

那如果是13个小球呢?

思路

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

4vs称一次,如果平衡,就在另5个中,拿3个正常的与5个中的三个对比,如果相等,在剩余两个中,拿正常的一个与剩余2个中一个对比,出结果,如果上次,3v3不相等,那么知道到球是轻还是重,取不正常的3个中的2个1v1,得结果。

如果 4v4不相等取正常的(5个中取)3个放入左天平,把左天平3个放入右天平,右天平取出3个,如果相等,必在从右天平取出的3个中,且知是重还是轻,从中取2,进行1v1得结果,如果不相等,天平的偏重方向未发生改变,说明必在 4v4时未被移动的两个球,左右一个,取一个正常的与其中一个对比得结果如果不相等,天平偏重发生改变,必在从左天平移动到右天平那三个球中,且知球的是偏重还是篇轻,去其中2个1v1得结果不会超过3次,不管哪种情况

 

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

思路

这很明显,1:05之后有一次,2:10之后有一次,3:15之后有一次,4:20之后有一次,5:25之后有一次,6:30之后有一次,7:35之后有一次,8:40之后有一次,9:45之后有一次,10:50之后有一次,12:00整有一次。24小时之中总共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个点,正好是圆内接正十一边形,其中一个顶点在12点处。

 

10     五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分: 抽签决定自己的号码(1、2、3、4、5),首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼 。如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼。依此类推条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。

问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?

思路

2号和3号有积极性让1号死,以便自己得到更多。所以,1号无奈之下,可能只有自己得0,而给2和3各50颗。但事实证明,这种做法依然不可行,为什么?

 

因为我们要先看到4号和5号的反应才行。很显然,如果最后只剩下4和5,这无论4提出怎样的方案,5号都会坚决反对。即使4号提出自己要0,而把100颗钻石都给5,5也不会答应——因为5号愿意看到4号死掉。这样5号最后顺利得到100颗钻石。因此,4的方案绝对无法获得半数以上的通过,如果轮到4号分配,4号只有死。

 

由此可见,4号绝对不会允许自己来分。他注定是一个弱者中的弱者,他必须同意3号的任何方案!或者1、2号的合理方案。可见,如果1、2号死掉,轮到3号分,三号可以说:我自己100颗,4、5号都为0颗,同意的举手!!这时候,4号为了不死,只好举手,而5号暴跳如雷地反对,但是没用。因为3个人里面只有2人同意就行了。

 

由此可见,当轮到3号分配的时候,自己分100颗,4、5都是0颗。因此,4、5都不会允许3来分配钻石。如果2号能够给4、5一些利益,他们是会同意的。

 

比如2的分配方案是:98,0,1,1,那么3的反对无效。4和5都能得到1,比3号分配的时候要好得多,因为4、5号此时不得不同意。

 

由此看来2号的最大利益是98。1号要收买2号,是不可能的。在这种情况下,1号可以给4号和5号每人2颗,自己收买他们。这样2、3号的反对无效。因此1号的分配方案是96.0,0,2,2.

 

这是不是最佳方案呢?再想一想,1号也可以不给4、5号各2颗,而只需要1颗就可以搞定3了,因为如果轮到2号来分配,2号可以不给3号,3的利益为0.所以能得到1颗,3号也是很满足的。所以,最后的分配情况为97,0,1,2,0.

 

好,再倒推。假设1号提出97,0,1,0,2的分配方案,1号自己赞成,2、4反对。现在主要就是看3、5会不会反对了,如果3反对,由2号分配,3只能得0,所以3号不会反对,再来分析5号会不会反对,如果5号反对,轮到2、3、4号分配,5号最多只能得到1颗,所以5号也不会反对。所以最终分配方案为97,0,1,0,2,或是97,0,1,2,0.

 

11     一道关于飞机加油的问题,已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机),一箱油可供一架飞机绕地球飞半圈。问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

思路

至少需要出动5 架飞机。思路是这样的,一架飞机要想完成绕地球一周的飞行,至少需要别的飞机给它提供1 箱油。最划算的办法显然是,派飞机和它结伴飞行前四分之一周以及后四分之一周,(因为这两段路程距离基地近所花代价小。)由它独立飞行中间的半程。必须保证两个加油点,前四分之一处,加满,后四分之一点,及时补充。那么必须有两架飞机与目标机结伴飞行四分之一周,这两架飞机需要做折返飞行,正好花费2 箱油。所以补充油的任务实际上该由另外两架飞机完成。这两架飞机飞八分之一周,做折返飞,正好富余1 箱油。因此,5 架飞机刚好完成任务。到了此时,问题只考虑了一半。能够提供多少油并不意味着就能够全部接受,受到结伴飞行的距离,即腾出的油箱空间所限制。而以下做法正好可以满足此条件。

3 架飞机同时从机场出发,飞行八分之一周,各耗油四分之一。此时某架飞机给其余两架补满油,自己返回基地。另一机和目标机结伴,飞至四分之一周,给目标机补满油,自己返回。目标机独自飞行半周,与从基地反向出发的一机相遇,2 机将油平分,飞至最后八分之一处,与从基地反向出发的另一机相遇,各分四分之一油,返回。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值