面试智力题大全
1. 有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层?
核心思路:等差递减间隔法
假设最坏情况下最多需要 ( n ) 次尝试,则第一次从第 ( n ) 层丢球:
- 若碎了:用第二个球从第1层到第 ( n-1 ) 层依次试,最多试 ( n-1 ) 次,总次数 ( n ) 次(含第一次)。
- 若没碎:第二次从第 ( n + (n-1) ) 层丢球(间隔递减1,确保剩余次数覆盖后续楼层)。
以此类推,每次间隔递减1,直到覆盖100层。
数学推导:确定初始间隔 ( n )
设首次尝试楼层为 ( n ),后续每次间隔递减1,总覆盖楼层需满足:
[
n + (n-1) + (n-2) + \dots + 1 \geq 100
]
左边是等差数列求和,公式为 ( \frac{n(n+1)}{2} \geq 100 )。
解得 ( n \approx 13.65 ),向上取整得 ( n = 14 )。
具体策略步骤
-
第一次从14层丢球:
- 碎了:用第二个球从1层到13层依次试,最多试13次,总次数 ( 1+13=14 ) 次。
- 没碎:第二次从 ( 14+13=27 ) 层丢球。
-
第二次从27层丢球:
- 碎了:用第二个球从15层到26层依次试,最多试12次,总次数 ( 2+12=14 ) 次。
- 没碎:第三次从 ( 27+12=39 ) 层丢球。
-
第三次从39层丢球:
- 碎了:试28-38层,最多11次,总次数 ( 3+11=14 ) 次。
- 没碎:第四次从 ( 39+11=50 ) 层丢球。
-
依此类推,后续楼层依次为:
( 50+10=60 )、( 60+9=69 )、( 69+8=77 )、( 77+7=84 )、( 84+6=90 )、( 90+5=95 )、( 95+4=99 )、( 99+3=102 )(超过100,最后一次直接试100层)。
最坏情况验证
- 若临界层在14层:试14层(碎)→1-13层(13次),共14次。
- 若临界层在27层:试14层(没碎)→27层(碎)→15-26层(12次),共14次。
- 若临界层在100层:需依次试14、27、39、50、60、69、77、84、90、95、99层(11次没碎),最后试100层(第12次),但实际按间隔规律,最后一次应覆盖到100层,计算时已确保总次数不超过14次。
结论
最优策略是首次从14层开始,之后每次在上一次基础上递增 ( n-1, n-2, \dots ) 层(( n ) 为剩余可尝试次数),最坏情况下最多需要14次尝试。
这种方法通过数学优化,使每次失败后剩余的尝试次数恰好覆盖剩余楼层,确保了最小化最坏情况下的尝试次数。
2.有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。
从每瓶药丸中取出与其瓶子编号相等的药丸数量。例如,从第1瓶药丸中取出1粒,从第2瓶药丸中取出2粒,以此类推,从第20瓶药丸中取出20粒。
将所有取出的药丸放在天平上进行一次称重。如果所有的药丸都是1克/粒,那么总重量应该是1+2+3+…+20=210克。但由于有一瓶药丸是1.1克/粒,总重量会比210克重一些。
计算天平上药丸总重量与210克之间的差值。这个差值将是一个整数倍的0.1克,这个整数就是装有1.1克/粒药丸的瓶子的编号。
例如,如果称重结果是210.3克,那么差值为0.3克,这意味着第3瓶药丸中的药丸重1.1克/粒。
3. 有个岛上住着一群人,有一天来了个游客,定了一条奇怪的规矩:所有蓝眼睛的人都必须尽快离开这个岛。每晚8点会有一个航班离岛。每个人都看得见别人眼睛的颜色,但不知道自己的(别人也不可以告知)。此外,他们不知道岛上到底有多少人是蓝眼睛的,只知道至少有一个人的眼睛是蓝色的。所有蓝眼睛的人要花几天才能离开这个岛?
关键信息:岛民们将通过观察其他人的行为,逐渐揭示这个谜题的答案。
假设岛上有n个蓝眼睛的人,我们来分析每种情况下蓝眼睛的人需要多少天才能离开岛:
当n=1时,岛上只有一个蓝眼睛的人。他看不到其他人的蓝眼睛,但知道至少有一个人是蓝眼睛的,所以他意识到自己就是那个蓝眼睛的人。所以,当天晚上8点,他就会离开岛。
当n=2时,岛上有两个蓝眼睛的人,两个蓝眼睛的人看到对方,并不确定n是1还是2,但是由上一种情况他们知道,如果n = 1,那个蓝眼睛的人第一晚就会离岛。第二天,他们发现另一个蓝眼睛的人没有离开,这意味着至少有两个蓝眼睛的人,所以他们能确定自己也是蓝眼睛的。于是,第二天晚上8点,两个蓝眼睛的人都会离开岛。
当n=3时,假设岛上有三个蓝眼睛的人。前两天晚上,他们都没有离开。到第三天,他们都看到其他两个蓝眼睛的人没有离开,这意味着岛上至少有三个蓝眼睛的人。由于他们看到了其他两个蓝眼睛的人,他们能确定自己也是蓝眼睛的。因此,第三天晚上8点,三个蓝眼睛的人都会离开岛。
以此类推,如果岛上有n个蓝眼睛的人,他们需要n天才能全部离开岛。因为每个人都在观察其他人的行为,当他们发现其他蓝眼睛的人都没有离开时,他们就能推断出岛上蓝眼睛的人数,并据此确定自己的眼睛颜色。
4.利用不均匀硬币产生等概率?
连续抛两次硬币,正反面的出现有四种情况,概率依次为:
两次均为正面:p * p
第一次正面,第二次反面:p * (1 - p)
第一次反面,第二次正面:(1 - p) * p
两次均为反面:(1 - p) * (1 - p)
问题的解法就是连续抛两次硬币,如果两次得到的相同则重新抛两次;否则根据第一次(或第二次)的正面反面情况,就可以得到两个概率相等的事件。
5. 5只猫5分钟捉5只老鼠,请问100分钟捉100只老鼠需要多少只猫?
5只,分析:1只猫5分钟捉1只老鼠,1只猫100分钟捉20只老鼠,5只猫100分钟捉100只老鼠。
6. 3升的杯子一个,5升的杯子一个,杯子不规则形状,问怎么得到4升的水?
- 5升杯子装满,全部倒给空的3升杯子,此时5升杯子有2升,3升杯子要3升
- 倒掉3升杯子的全部水,再把5升杯子的2升水倒给3升杯子,此时5升杯子有0升,3升杯子有2升
- 5升杯子装满水,向3升辈子倒水,倒满,此时此时5升杯子有4升,3升杯子有3升
通用步骤模板:
- 装满大杯(A);
- 将大杯倒入小杯(B)至满,大杯剩 A−B
- 倒空小杯(B),将大杯剩余倒入小杯;
- 重复步骤 1-3,直至小杯剩余可通过大杯补满后得到目标量。
本质:利用两容器容量的 “模运算” 特性,通过循环操作使大杯剩余量逼近目标。
7. 用5L和6L的桶,没有刻度,怎么量出3L的水?
- 6L桶装满水,向空的5升桶倒水至水满为止,此时6L桶有1升水,5L桶有5升水;
- 倒掉5L桶的全部水,再把6L桶的1升水倒给5L桶,此时6L桶有0升水,5L桶有1升水;
- 6L桶装满水,向5升桶倒水至水满为止,此时6L桶有2升水,5L桶有5升水;
- 倒掉5L桶的全部水,再把6L桶的2升水倒给5L桶,此时6L桶有0升水,5L桶有2升水;
- 6L桶装满水,向5升桶倒水至水满为止,此时6L桶有3升水,5L桶有5升水。
8. 晚上有四个人过桥,一次只能过两个人,但是只有一只手电筒,四个人过桥时间分别是1,2,5,8,求最短过桥时间?
假设这四人依次是甲乙丙丁:首先甲和乙过桥,甲带手电筒回来;然后丙和丁过桥,由乙带手电筒回来;最后甲再和乙一起过桥,所以最少用时间是2+1+8+2+2=15(分钟)
9. 有十张扑克牌,每次可以只出一张,也可以只出两张,要出完有多少种出法?
等价于有几个台阶,每次可以跳一步或两步,共有多少种跳法。
F(1)=1,F(2)=2,F(3)=F(1)+F(2);依次推出:F(10)=F(9)+F(8)=89
10. 两根香,一根烧完1小时,如何测量15分钟?
- 开始时一根香两头点着,一根香只点一头;
- 两头点着的香烧完说明过去了半小时,这时将只点了一头的香另一头也点着,从这时开始到烧完就是15分钟。
概率题
甲有 n+1 枚硬币,乙有 n 枚硬币,求甲掷出的正面数比乙掷出的正面数多的概率 ?那如果甲有n+2枚呢?
甲和乙各抛 n 次,甲掷出的正面数等于乙抛出正面数。要想甲比乙多,甲必须再抛出一个正面,甲抛出正面概率P=0.5,所以,甲比乙多的概率0.5。当甲有n+2次,那么最后2次,至少1次正面即可,所以概率为1-0.5^2 = 0.75。
先手必胜问题
100本书,两个人轮流拿,每次拿1~5本,你先拿,有没有策略可以保证你可以拿到最后一本?
最后只要剩下6本,这样无论他怎么拿,我都能拿到最后一本。
核心策略是控制每轮两人拿书的总数为6本。首先计算100除以6的余数,(100 \div 6 = 16) 余4,因此你第一步先拿走4本,使剩余书数为96本(96是6的整数倍)。此后,无论对手每轮拿取 (x) 本((1 \leq x \leq 5)),你均拿取 (6-x) 本,确保每轮两人共拿走6本书。随着轮次推进,剩余书数会依次递减为90、84、78……直至最后剩下6本书。此时对手无论拿1~5本,你都能拿走剩余全部书籍,从而拿到最后一本。