程序员面试喜欢考察应聘者的逻辑思考能力,但是存在一个弊端就是由于题目有限有些应聘者之前接触过被考察的题目就可以很流畅的回答出来,而没接触过的应聘者即使有相同的逻辑推理能力也很难流畅的表达出来。这样显得这个环节不太公平,但是我们只能通过增强自身的经验来克服这种情况。下面是我收集整理的一些逻辑推理类型的题目:
经典面试智力题200+题和解答中有更多类似的逻辑推理题目,感兴趣的同学可以看一下,我这里只列举常见的逻辑题目。
题目列表
-
- 1. 1000个瓶子里有一瓶毒药,老鼠喝了毒药之后一天后死亡, 一次可以喝多瓶毒药,问检测出毒药最少需要多少只老鼠?
- 2. 两个人抛硬币来决定谁吃这个苹果,先抛到正面者吃。问先抛者吃到苹果的概率是多少?
- 3. 已知23个硬币,10枚正面朝上,13枚反面朝上。你被蒙住眼睛,而你的手又摸不出硬币的正反。需要将硬币分成两堆,可以对硬币进行翻面,使两堆中的正面朝上的硬币数量相同。
- 4. 一个函数随机生成0-4的数字,如何通过这个函数得到0-7的随机数(概率相等)
- 5. 有五个山洞,一字排开,一只狐狸住在某个洞,每天晚上会换住到相邻的洞中,一个猎人只能每天早上去一个洞抓狐狸,问猎人需要几天,每天进哪个洞?
- 6. 砝码称重问题
- 7. 罐子和水
- 8. 烧绳子
- 9. 高楼扔鸡蛋
- 10. 对一批编号为1~100,全部开关朝上(开)的灯进行以下操作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关……问:最后为关熄状态(灭)的灯的编号。
- 11. 四张卡片,卡片正面是数字,反面是字母。现在桌上四张卡片,状态为 a 1 b 2 现在我想要证明 a 的反面必然是 1 ,我只能翻两张牌,我翻哪两张?
- 12. 赛马问题,25 匹马,5 个赛道,最少几次能选出最快的三匹马?
- 13. 五队夫妇参加聚会,每个人不能和自己的配偶握手,只能最多和他人握手一次。A问了其他人,发现每个人的握手次数都不同,那么A的配偶握手了几次?
- 14. 你只能带行走 60 公里的油,只能在起始点加油,如何穿过 80 公里的沙漠?
- 15. 有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成50、90克各一份?
- 16. 有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以第 小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以外30公里每小时的速度和 两辆火车现时启动,从洛杉矶出发,碰到另辆车后返回,依次在两辆火车来回的飞行,直道两面辆火车相遇,请问,这只小鸟飞行了多长距离?
- 17. 你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到红球的准确几率是多少?
- 18. 在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯?
- 19. 他们都各自买了两对黑袜和两对白袜,八对袜子的布质、大小完全相同,而每对袜子都有一张商标纸连着。两位盲人不小心将八对袜子混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?
- 20. 有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。筐上的标签都是骗人的,(就是说筐上的标签都是错的)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三筐水果的标签。
- 21. 一个班级60%喜欢足球,70%喜欢篮球,80%喜欢排球,问即三种球都喜欢占比有多少?
- 22. 五只鸡五天能下五个蛋,一百天下一百个蛋需要多少只鸡?
1. 1000个瓶子里有一瓶毒药,老鼠喝了毒药之后一天后死亡, 一次可以喝多瓶毒药,问检测出毒药最少需要多少只老鼠?
这个题是对bit位的应用,1000接近1024,所以需要10个bit位,对瓶子进行编号,从0到999,这样需要10只老鼠。
老鼠用 a ,b ,c ,d ,e ,f ,g ,h ,i , j ,表示
瓶子的编号分别为:
第0号瓶:00000,00000
第1号瓶:00000,00001 a
第2号瓶:00000,00010, b
第3号瓶:00000,00011 a b
第4号瓶:00000,00101 a c
第5号瓶:00000,00111 a b c
。。。。。。
第999号瓶:11111,00111 a b c - - f g h i j
同时给老鼠编号,从1,2,…10,从低位开始,让第n个老鼠喝下第n个bit位为1瓶子中的药水。24小时后,若所有的老鼠都没有发病,那么是第一个瓶子有毒,如果有一些老鼠发病,那么这些发病老鼠对应的位数置为1得到的数字最低位+1变成整数后,对应的数字即为有毒药水的编号。
比如:第四瓶有毒,全部生病的小鼠得到的(编号第三号)00000011 +1 =00000100 = 4 。第四瓶有毒(没有第0瓶,所以加1)
所以只要10只老鼠就能在 24小时后 排查出到底那瓶有毒。
2. 两个人抛硬币来决定谁吃这个苹果,先抛到正面者吃。问先抛者吃到苹果的概率是多少?
假设第一个人抛中概率为P,第一次第一个人未中为1/2 ,而此人第二次的时候抛说明第二个人仍然未中,此人后续抛中概率为(1/2) * (1/2) * P.
而此人此处抛中为 P = 1/2 + 1/4 P ===> P = 2/3
这里对于P有一个误解,就是为什么不继续考虑第三次第四次的情况,要说明一下P并不是一个常量,而是一个变量或者表达式,所以只在右侧出现一次就代表了递归求解其他的所有情况。
3. 已知23个硬币,10枚正面朝上,13枚反面朝上。你被蒙住眼睛,而你的手又摸不出硬币的正反。需要将硬币分成两堆,可以对硬币进行翻面,使两堆中的正面朝上的硬币数量相同。
分成10:13的堆。假设左边的堆中正面数量为n(n<=10),则反面数量为10-n。右边的堆中正面数量为(10-n)。将左边全部进行翻转,则左边堆中的正面数量为(10-n)。
4. 一个函数随机生成0-4的数字,如何通过这个函数得到0-7的随机数(概率相等)
0-4的随机数字生成器rand4可以随机生成等概率的五个数字,要想使用五个数字表示更大范围的数字可以用5进制来表示:
我们可以设计一个5进制的2位数,高位和低位均由rand4表示,这样得到的随机数在十进制的0-24等概率分布。而要想得到0-7的随机数则需要8个数字,因此需要对rand24取整后等分,可表示为rand7=(rand4*5+rand4)<=23?rand24/3:loop
,即将rand24取前24个数等分为8份作为rand7的取值依据。
5. 有五个山洞,一字排开,一只狐狸住在某个洞,每天晚上会换住到相邻的洞中,一个猎人只能每天早上去一个洞抓狐狸,问猎人需要几天,每天进哪个洞?
尽量将狐狸向一个方向赶
所以可以采用234234
的方案。
6. 砝码称重问题
Q1:有十组砝码,每组十个,其中九组每个砝码的重量为10g,另外一组每个砝码的重量为9g,问用一个能显示克数的秤,最少几次能找到这组9g的砝码?
A1:1次。
将砝码分为1~10组,从第1组拿一个砝码,第2组拿两个砝码,以此类推,第10组拿十个砝码,放到秤上称出克数y,则x=550g-y,x组即为砝码重量为9g的一组。
Q2:有一个天平,9个砝码,其中有1个比其他8个轻,问至少称几次能找到轻的那个砝码?
A2:至少2次。
将砝码分为3组,每组3个,拿其中两组到天平上称(第1次),如果一样重,则轻的为剩下那组,不一样重,则也能分辨出哪一组轻;
取轻的那一组的3个砝码,从中选出两个到天平上称(第2次),若一样重,则剩余的1个为轻,不一样重,则轻的也能轻易找到。
7. 罐子和水
Q1:现在有不限量的水,你有两个容量为5L和3L的罐子,请准确称出4L水。
A1:先把5L的罐子装满,然后将5L罐子里的水倒入3L罐内,直至倒满,此时5L罐子中剩2L水;将3L罐子内的水倒出,将5L罐内的2L水倒入3L罐内,此时3L罐内有2L水;将5L罐子中倒满水,后将5L罐子里的水倒入3L罐中,直至倒满,此时3L罐内2+1L水,已满,5L罐内便剩下(5-1)=4L水。
Q2:不好意思,还是有取之不尽用之