IT公司智力题(持续跟新中)

请听题(用赵本山在《买车》的语气)

1.有1000瓶药物,但是其中有一瓶是有毒的,小白鼠吃了一个星期以后就会死掉!
请问,在一个星期内找出有毒的药物,最少需要多少只小白鼠?

解答:用二进制的思路去思考,1000瓶药代表了1000种状态,那么1000用二进制表示可以用一个10位的二进制数就可以全部表示出来,考虑用十只白鼠来试验,用0和1代表它们最终的状态即死亡或活着,初始状态十只白鼠表示为0000000000。(网上的解答到此为止,下面是对此的解释)

0001:代表第一瓶药给1号小白;

0010:代表第二瓶药给2号小白:

0011:代表第三瓶药给1,2号小白;

……

最后,看结果:

如果只是1号小白挂了,那么1号药为假;

如果只是2号小白挂了,那么2号药为假;

如果1.2号小白都挂了,那么3号药为假;

可以看出,窍门1:用二进制数的方法来标示状态;2一只小白鼠可以喝多瓶药水(哈哈,这个隐含条件啊)


2.有A、B、C、D四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时1、2、5、10分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?

答案:(没啥好说的,凑数呗)
第一步:A(1)和B(2)过桥,A(1)返回 Cost:1+2
第二步: C(5)和D(10)过桥,B(2)返回 Cost:10+2
第三步: A(1)和B(2)过桥 Cost:2

3.有50家人家,每家一条狗。有一天警察通知,50条狗当中有病狗,行为和正常狗不一样。每人只能通过观察别人家的狗来判断自己家的狗是否生病,而不能看自己家的狗,如果判断出自己家的狗病了,就必须当天一枪打死自己家的狗。结果,第一天没有枪声,第二天没有枪声,第三天开始一阵枪响,问:一共死了几条狗?

这道题实在是太精彩了。屡见不鲜,算一道及其经典的题目了。
解答的过程主要要设身处地,站在狗主人的立场上,有点儿像玩桌游哦。
我们先从一条病狗说起。
主人的集合为{A0,A1,...A50}
狗的集合为{a1,a2,...a50}
1.假设有一条病狗,不妨设为a1。那么经过在第一天,每个人都可以看到那条病狗,除了病狗的主人A1。
A1这样分析:哇,周围的狗竟然都是正常的,而这里一定有病狗,看来只有我家的旺财生病了,哎,杀它吧。于是,枪声会在第一天想起。注意此时,其它狗主人看到a1的狗生病,但是无法确定自己的狗是不是正常的,自己的狗也许是正常的,也许是生病的。
但是如果自己的狗是病狗,那么A1就不会枪杀a1了,因为A1会看见自家的狗是病狗,A1无法确定自己的狗是病狗,当然不会在第一天杀死a1。但是现在a1死了,所所以证明自己家的狗是正常的,杀戮停止!

2.假设有两条病狗。不妨设为a1,a2。第一天,A1,A2分别看到病狗a2,a1。{A3,...A50}则看到病狗a1,a2。A1,A2知道至少有一条病狗,{A3,...A50}知道至少有2条病狗。所有的人都会在第一天等待,第一天并不会响起枪声,没人能证明自己的狗生病了。第二天到了,A1,A2第一天没有枪声,明白了,病狗不止一条:有2条,而自己只看到1条病狗,所以自己的狗是病狗,所以,枪声响起了:a1,a2被杀。而此时,{A3,...A50}松了口气,原来只有2条病狗,自己的狗是健康的。如果自己的狗是病狗,A1,A2就不会杀自家的狗了(分析类似于1中的红色字体)。
3.假设有3条病狗,不妨设为a1,a2,a3。第一天,A1,A2,A3分别看到病狗{a2,a3},{a1,a3},{a1,a2}。{A4,...A50}则看到病狗a1,a2,a3。A1,A2,A3知道至少有2条病狗,{A4,...A50}知道至少有3条病狗。第一天并不会响起枪声,没人能证明自己的狗生病了。第二天并不会响起枪声,同样没人能证明自己的狗生病了。第三天终于来了。经过前两天,A1,A2,A3终于知道,原来至少有3条病狗(如果只有两条的话,第二天枪声就要响起)。而自己值看到2条病狗,所以剩下的那只病狗一定是自己的。所以,A1,A2,A3分别枪杀了自己的狗。而{A4,...A50}看到自己看到的病狗被杀后,就不会怀疑自己的狗是病狗:如果有自家的狗也是病狗,A1,A2,A3就不会枪杀他们家的狗。(分析类似于1中的红色字体)

照着这样分析下去,可以知道,第k天枪声响起,那么就有k条病狗

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

分成4个、4个、5个,先拿两个四个上去,如果平衡,则问题出在5个那组,就在5个里任拿三个设为C1C2C3,再拿三个正常的,分别放两边,若平衡就简单啦,若不平衡,就出现C1C2C3重,或C1C2C3轻,相当于就知道那个特别的球是比较重或者比较轻啦,接下就不用说了
   如果不平衡,假设现在是A重B轻,
   取A1+A2+B1放天平一边(设为左边),
   再取A3+A4+B2放另一边(右),
   若平衡,就在B3/B4任拿一个跟C1上去称就行了,
   如果不平衡,那么假设
   情况一:左重
   则是A1/A2/B2有问题
   直接把A1A2放两边称,重的那个有问题,如果平
   衡就是B2有问题
   情况二:右重
   就是 A3/A4/B1有问题,方法同上


  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值