面试过程中遇到的智力题

简介: 1、滴滴三面真题考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。

1、滴滴三面真题

考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币,谁就输了。游戏的先行者如何保证自己必胜?
    

答案:

先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者保持中心对称。这样,只要后行者能放,先行者一定也有地方放。先行者必胜。
 

 

2、头条一面真题

有ABCD四个海盗,一共有十枚金币,每个人依次对于分金子的方案作出提议,如果半数以上的人同意他的提议,则他会活下去,如果没有,则他会被扔进海里。问A海盗如何保证自己的利益最大化。

 

这题算是经典海盗分金问题的改进版吧,因为要求半数以上的人同意,才能活下去。看答案之前,可以先看一波经典海盗分金问题的解法吧。

参考链接:https://blog.csdn.net/u012050154/article/details/52231599

更细致的参考链接:https://blog.csdn.net/y990041769/article/details/22858781

 

在牛客网发帖得到的思路:

逆向考虑:

1,只剩c,d。不管c怎么分,d都能让c死(半数以上同意才不死)。所以c肯定不能到这一步,那么,b不管怎么分,c都只能同意。

2,结合上面,d可以分10,0,0,。这里,c肯定要保b不死,所以c肯定会同意,b就能有两票,就不会死。

3,所以,a只需要分8,0,1,1。就可以拉拢c,d,加上自己,就有三票。

综上,分8,0,1,1能保证a利益最大化

 

 

3、圣旦品牌管理有限公司笔试题(群里面看到的题)

现在有100跟香蕉,一只猴子需要将其搬至距离50m的家中。猴子每次最多拿50根香蕉,且无论怎么走每走 1m 会吃掉一根香蕉,问最多可以搬到家多少根香蕉?

 

思考:

第一次拿50根,走一米,放下48根,回到出发点去拿其余的50根香蕉,然后带着这50根香蕉,走一米。此时前进一米,消耗香蕉 3 根。

从这97根香蕉中拿 50 根前进一米,放下48根, 回到出发点去拿剩余的47根香蕉,然后带着这47根香蕉,走一米。此时前进一米,消耗香蕉三根。

以此类推,当香蕉的总数小于等于50时,猴子前进了 51/3=17 米,剩余33米。带着剩余的49根香蕉,猴子可以直接前进回家了,到家的时候,手里剩余 49 - 33 = 16 根。(我真是个天才,23333)

 

 

4、作业帮三面

25匹马,5个跑道,每次只能5匹马跑,问最少几次得到跑的最快的3匹马

 

思考:

正确答案: 7 场。


推理过程:


你可以先询问面试官,「最快」的意思,是不是指比赛时总能赢?在真实情况下并非如此。但倘若你假设, A 在比赛中跑赢了 B , A 就无可争议地跑得更快,这就极大地简化了这道谜题。


面试官会告诉你,这么想没有问题,比赛就是为了选出跑得最快的马。通常,你会下意识地想,至少需要 5 场比赛。任何一匹马都可能排名前三,所以,你必须让所有的 25 匹马都参加比赛。可每次只让 5 匹马参赛,少于 5 场比赛没法让所有的马都参赛。


很好。接下来你的结论会是:只有 5 场比赛还不够。第一轮,把 25 匹马分为 5 组,每组里的马只跑一次,只跟同组的马匹竞争。一轮比赛结果大概会是这样:


第一名:「奔腾」

第二名:「北舞」

第三名:「凯速」

第四名:「上将」

第五名:「跳影」


你无法断定「奔腾」是 25 匹马里跑得最快的,甚至无法担保它能排进前三名。举个极端情况下的相反例子:其他 4 场比赛中跑得最慢的马,也可能比「奔腾」跑得快,因为它的速度可能在 25 匹马里排第 21 名。


那么,从这场比赛里我们是否了解到什么东西呢?当然了。我们了解到这 5 匹马的排名情况。我们还了解到,「上将」和「跳影」可以排除在外了。既然它们在这一轮比赛里排不进前三,那么在所有的 25 匹马里,它们同样不可能排进前三。。这个道理,也适用于其他轮比赛里的第 4 名和第 5 名。每一轮比赛可以排除掉两匹马。在第一轮的 5 场比赛中,我们可以刷掉 10 匹马,留下 15 匹马竞争前三名。


第二轮,即第 6 场比赛,要测试在最初 5 场比赛中表现出色者。合理的方案是让 5 匹上一轮比赛的「第一名」对战。就这么做吧!让「奔腾」和其他 4 场比赛的第一名跑一回。结果可能会是这样:


第一名:「易歌尔」

第二名:「奔腾」

第三名:「终结者」

第四名:「红朗姆」

第五名:「菲尔拉普」


这一次,我们又可以排除两匹马,「红朗姆」和「菲尔拉普」。从这一次的比赛结果看,它们不可能是 25 匹马里的前三名。我们还了解到,「易歌尔」是所有马里跑得最快的!如果问题问的只是 25 匹马里跑得最快的是谁,那么答案就是「易歌尔」。


可我们要的是前三名。我们不光可以排除掉「红朗姆」和「菲尔拉普」,还可以排除掉第一轮比赛中所有败给它们的马。败给它们的马跑得更慢,而我们又已经知道「红朗姆」和「菲尔拉普」进不了前三了。


接下来是「奔腾」。从这场最新的比赛结果来看,它有可能是所有马里跑得第二快的。但以下可能性仍然存在:第一场比赛排在「奔腾」之后的「北舞」,是所有马里跑得第三快的。那么,最终排名就是「易歌尔」、「奔腾」和「北舞」。第一场比赛中排第三的「凯速」,现在出局了。

「易歌儿」第一次比赛时排在它后头的第二名和第三名,仍在候选之列。这两匹马的速度完全有可能比「奔腾」快,因为它们并没有比试过。


总之,现在候选名单里还有 6 匹马。它们是:本场比赛的前三名;与本场比赛第一名在第一场比赛中获第二、第三名的两匹马;在第一场比赛中仅次于本场比赛第二名的一匹马。


我们已经知道「易歌儿」是跑得最快的马,因此,让它参赛没有任何意义了,于是就只剩下 5 匹马。自然,第三轮,我们会让这 5 匹马进行第 7 场,也是最后一场比赛。第 7 场比赛的前两匹马就是所有 25 匹马中跑得第二快和第三快的。


总结一下:先进行 5 场资格赛;之后让资格赛的第一名们进行冠军争夺赛,本场比赛的获胜者就是所有马里速度最快的;再对逻辑上仍有资格的 5 匹马进行最后一场比赛。这次比赛里的前两名,就是 25 匹马里跑第二和第三快的。

作者:宅狼
链接:https://www.zhihu.com/question/19856916/answer/40998875
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

相关文章
技术面试常见智力题
了解技术面试常见智力题。
255 0
|
Java
技术面试中常见的几道智力题 来看看你会做几道?
下面是大部分题目来自滴滴出行2017秋招题。有几道题目是我在做的时候没有想出来的,还有几道题目整理在这里单纯是为说明有一些智力方向的面试题并不是大家想的那么难,我们运用高中的知识就完全可以解决。
4955 0
|
3月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
10天前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?

相关实验场景

更多