JAVA面试常见的推理题



1.有两根不均匀分布的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?

    答:此题的大致步骤如下:

             (1)第一根香先点一头 第二根两头同时点;

             (2)当第二根烧完了,我们可以确定30分钟;

             (3)此时开始计时,同时将另一头也点着,当这根烧完时,这段时间就是15分钟。

2.怎样种四棵树使得任意两棵树的距离相等。
   答:只需要找一个锥形平台,下面栽种三棵树,成正三边形,平台上为第四棵,让第四棵树到其它三棵的距离相等即可。
3.27 个小运动员在参加完比赛后,口渴难耐,去小店买饮料,饮料店搞促销,凭三个空瓶可以再换一瓶, 他们最少买多少瓶饮料才能保证一人一瓶?
   答:18 瓶。这种规则可以换一种说法:你买 2 瓶商店可以送你一瓶水(瓶子属于商店的)或者说你买 2 瓶可以喝 3 瓶水.


4.一架飞机载满油飞行距离为1,n架飞机最远能飞多远?
    答:在不是兜圈没有迎头接应的情况,这问题就是n架飞机能飞多远?存在的极值问题是不要重复飞行,比如两架飞机同时给一架飞机加油且同时飞回来即可认为是重复,或者换句话说,离出发点越远,在飞的飞机就越少,这个极值条件是显然的,因为n架飞机带的油是一定的,如重复,则浪费的油就越多。比如最后肯定是只有一架飞机全程飞行,注意“全程”这两个字,也就是不要重复的极值条件。如果是两架飞机的话,肯定是一架给另一架加满油,并使剩下的油刚好能回去,就说第二架飞机带的油耗在3倍于从出发到加油的路程上,有三架飞机第三架带的油耗在5倍于从出发到其加油的路程上,所以n架飞机最远能飞行的距离为s=1+1/3+?+1/(2n+1)这个级数是发散的,所以理论上只要飞机足够多最终可以使一架飞机飞到无穷远,当然实际上不可能一架飞机在飞行1/(2n+1)时间内同时给n-1个飞机加油。
      (2)可以迎头接应加油

一架飞机载满油飞行距离为1/2,最少几架飞机能飞行距离1?也是根据不要重复飞行的极值条件,得出最远处肯定是只有一架飞机飞行,这样得出由1/2处对称两边1/4肯定是

一架飞机飞行,用上面的公式即可知道一边至少需要两架飞机支持,(1/3+1/5)/2>1/4(左边除以2是一架飞机飞行距离为1/2),但是有一点点剩余,所以想像为一个滑轮(中间

一个飞机是个绳子,两边两架飞机是个棒)的话,可以滑动一点距离,就说加油地点可以在一定距离内变动(很容易算出来每架飞机的加油地点和加油数量,等等)

5.三个小伙子同时爱上了一个姑娘,为了决定他们谁能娶这个姑娘,他们决定用枪进行一次决斗。小李的命中率是30%,小黄比他好些,命中率是50%,最出色的枪手是小林,他从不失误,命中率是100%。由于这个显而易见的事实,为公平起见,他们决定按这样的顺序:小李先开枪,小黄第二,小林最后。然后这样循环,直到他们只剩下一个人。那么这三个人中谁活下来的机会最大呢?他们都应该采取什么样的策略?
小林在轮到自己且小黄没死的条件下必杀黄,再跟菜鸟李单挑。
所以黄在林没死的情况下必打林,否则自己必死。
小李经过计算比较(过程略),会决定自己先打小林。
于是经计算,小李有873/2600≈33.6%的生机;
小黄有109/260≈41.9%的生机;
小林有24.5%的生机。
哦,这样,那小李的第一枪会朝天开,以后当然是打敌人,谁活着打谁;
小黄一如既往先打林,小林还是先干掉黄,冤家路窄啊!
最后李,黄,林存活率约38:27:35;
菜鸟活下来抱得美人归的几率大。
李先放一空枪(如果合伙干中林,自己最吃亏)黄会选林打一枪(如不打林,自己肯定先玩完了)林会选黄打一枪(毕竟它命中率高)李黄对决0.3:0.280.4可能性李林对决0.3:0.60.6可能性成功率0.73
李和黄打林李黄对决0.3:0.40.7*0.4可能性李林对决0.3:0.7*0.6*0.70.7*0.6可能性成功率0.64

6.一间囚房里关押着两个犯人。每天监狱都会为这间囚房提供一罐汤,让这两个犯人自己来分。起初,这两个人经常会发生争执,因为他们总是有人认为对方的汤比自己的多。后来他们找到了一个两全其美的办法:一个人分汤,让另一个人先选。于是争端就这么解决了。可是,现在这间囚房里又加进来一个新犯人,现在是三个人来分汤。必须寻找一个新的方法来维持他们之间的和平。该怎么办呢?
 解答:按:心理问题,不是逻辑问题。是让甲分汤,分好后由乙和丙按任意顺序给自己挑汤,剩余一碗留给甲。这样乙和丙两人的总和肯定是他们两人可拿到的最大。然后将他们两人的汤混合之后再按两人的方法再次分汤

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值