面试智力题
【绳子类】
1、 一条绳子(粗细不均,长短不一),从一头点燃,全部烧完要耗时1个小时,问如何用这条绳子测出半个小时?(初级)
2、 有一些绳子(粗细不均,长短不一),但是每根绳子点燃后都烧一个小时,问用什么方法可以用这些绳子计算45分钟的时间,计算1小时15分钟时间呢?(中级)
(分析)这类题目比较简单。由于绳子是双向的,只需同时点燃绳子的两端,便可得到1/2小时的时间,这种方法暗含着以一个绳子单向点燃时间作为参照物;同时点燃两根绳子,一根双向点燃,另一根单向点燃,待第一根绳子燃烧完毕后,点燃第二根绳子的另一端,便得到45分钟时间;同理,可计算1小时15分钟时间。
【博弈类】
1、 假设排列着100个乒乓球,由两个人轮流拿球装入口袋,能拿到第100个乒乓球的人为胜利者。条件是:每次拿球者至少要拿1个,但最多不能超过5个,问:如果你是最先拿球的人,你该拿几个?以后怎么拿就能保证你能得到第100个乒乓球?(中级)
2、 16个硬币,A和B轮流拿走一些,每次拿走的个数只能是1,2,4中的一个数。谁最后拿硬币谁输。问:A或B有无策略保证自己赢?假设都很聪明。(高级)
3、 传说,从前有五个海盗抢得了100枚金币.他们通过了一个如何确定选用谁的分配方案的安排.即:
1.抽签决定各人的号码(1,2,3,4,5);
2.先由1号提出分配方案,然后5个人表决.当且仅当超过半数人同意时,方案才算被通过,否则他将被扔入大海喂鲨鱼;
3.当1号死后,再由2号提方案,4个人表决,当且仅当超过半数同意时,方案才算通过,否则2号同样将被扔入大海喂鲨鱼;
4.往下依次类推……
根据上面的这个故事,现在提出如下的一个问题.即:
我们假定每个海盗都是很聪明的人,并且都能够很理智地判断自己的得失,从而做出最佳的选择,那么第一个海盗应当提出怎样的分配方案才能够使自己不被扔入大海喂鲨鱼,而且收益还能达到最大化呢?
(分析)博弈类的题目往往需要逆向思维考虑问题,这两道题目也不例外。
对于问题1,要确保自己能拿到最后一个球,应该在最后一轮(“一轮”定义为对方和自己依次取一次球)中剩余6个求,这样,对方拿x个,你拿剩下的6-x个便可以获胜,…,依次往前推,100个乒乓球可包含100/6=16轮,剩下100%6=4个。于是,可以得到答案:自己先取4个球,然后对方取x个,自己取6-x个,这样便可保证自己取到第100个球。
对于问题2,与问题1类似,需要针对A拿的硬币个数,确定B对应拿几个(假设B赢)。采用逆推的方法,最后必须剩余1个,且此时让A拿,倒数第二轮可剩余3个或者6个,这样,A拿1个,B对应拿2个;A拿2个,B对应拿1个;A拿4个,B对应拿2个,…,依次逆推,16个硬币最多进行16/3=5轮,最后正好剩余16%3=1个。
对于问题3
【倒水类】
1、 假设有一个池塘,里面有无穷多的水。现有2 个空水壶,容积分别为 5 升和6 升。问题是如何只用这2 个水壶从池塘里取得3 升的水?(初级)
2、 如果有无穷多的水,一个3公升的桶,一个5公升的桶,两只桶形状上下都不均匀,问你如何才能准确称出4公升的水?(初级)
3、 如上题,如果是7公升和11公升的桶,怎样准确量出2公升的水?(初级)
11=7 = 4 7-4 = 3 11- 3 = 8 8-7 =1