微软的面试难题

 * 为什么下水道的盖子是圆形的而不是正方形的?
      主考官认为的最好回答是:正方形的盖子容易掉到洞里去。想一想,如果盖子真掉进去的话,那么不是发生伤人事故,就是盖子会掉到水里。为什么正方形的盖子容易掉下去呢?这是因为正方形的对角线是其边长的约1.414倍。如果把一个正方形盖子垂直地立起来,稍微一转,它就会很容易掉到下水道里去。与此相反,圆的直径都是等长的,这使它很难掉进去。
      一种诙谐回答是:下水道的洞口是圆形的,盖子当然也应该是圆的。那么为什么下水道的洞口是圆形的?答案是因为圆形的洞比方形的洞好挖。
      还有另外一种答案:在进行短距离搬运时,圆形的盖子可以很方便地通过滚动的方法来搬运,而方形的盖子就不容易搬运,你需要借助手推车或者由两个人抬着走。再有一点就是用圆形盖子盖住洞口时,不需要怎么调整就可以与洞口严丝合缝。
      这个问题恐怕是微软最为有名的面试问题了。由于“曝光率”太高,微软在面试中已经停止使用这个问题了。
      * 钟表的指针每天重叠多少次?
      许多人很快就想到这个问题的答案是24次,只不过是有点小误差。但这并不是这个问题想要的答案,它要求把这个“误差”部分说出来。
      首先应该清楚,这个问题并不包含任何难以预料的因素,因为两个指针都是以恒定的速度运动,因此,两次重叠之间的时间段也应该是一个常数。
      这个固定的间隔时间应该比1小时多一点,晚上12时,时针和分针精确重合。分针转一整圈需要花1小时的时间。与此同时,时针已经转动了钟表整个一圈的1/12,也就是到了1的位置,因此分针还要花5分钟时间才能赶上时针(这中间时针又往前走了一小点)。
      我们目前可以确定这个固定间隔的时间长度为65分钟多一点。我们必须在24小时里面计算这些间隔,每天开始和结束的时候,时针和分针都会朝上并重叠。实际上我们只要计算出12小时里的间隔就可以了,因为前12个小时的指针重叠情况与后12小时的情况是一样的。
      让我们来计算午夜12点到中午12点这段时间内的情况。这段时间指针的重叠次数不可能超过12次,因为如果达到了12次,那么两次重叠之间的时间长度为12/12,或者说刚好1小时,而我们已经知道这个间隔的时间长度为65分钟多一点。因此,12小时里面的重叠次数应该是11次,如果是这样的话,时间间隔就成了11/12,或者说是65.45分钟。这个数字恐怕与我们先前计算的间隔的时间长度正好相等。
      那么24小时内就有22次重叠,答案就是22次。除非你的计算要细如发丝,还要把半夜12点一天结束与一天开始的那一次重叠计算进来,就是23次。
      * 有一桶装有3种颜色的软糖,分别是红、绿、蓝。问题:闭上眼睛从桶里抓糖,需要从桶里抓多少颗糖才能保证你一定能够同时抓出2颗颜色相同的软糖?
      答案是4颗。如果只拿出3颗,有可能每种颜色的糖各拿出1颗而不能保证一定有2颗糖颜色相同。如果拿出4颗,则可以保证有2颗糖颜色相同。
      微软的这个问题改编自另外一个版本。这个版本的问题要求从黑暗中的抽屉里拿出颜色配对的袜子。当袜子只有2种颜色时,拿出3只就可以保证有配对的颜色了。
      * 有8颗弹子球,其中1颗是“缺陷球”,也就是它比其他的球都重。你怎样使用天平只通过两次称量就能够找到这颗球?
      天平是有两个托盘的简单装置,它只能告诉你哪边重,但不会告诉你所称物体的确切重量。另外当天平两边平衡时,就表明两边的物体重量相同。
      我们先来看着最容易想到的方法能不能解决问题。比如说一边放4颗弹子球,那么较重一边盘子里的4颗弹子中肯定有1颗弹子球是有缺陷的。然后把这一组较重的4颗球分成两组再进行称量,仍然可以得知较重的一边盘子里的2颗球中有1颗球中哪一个是“缺陷球”呢?如果再称一次,称量的次数就会超过两次。
      要想解决这个问题,必须充分利用天平可以量出两边弹子球重量是否相等这一事实:无论什么时候只要两边重量相等,就表明“缺陷球”不在这些弹子球中。
      第一次称重,在天平的两边各任意放3颗球。这时候会,有两种可能的结果。
      一种可能的结果是天平两边的重量是平衡的。在这种情况下,就可以确定所称量的6颗球里面没有“缺陷球”。因此第二次称重时就只需要称量剩下的2颗球,较重的1颗就是“缺陷球”。
      另外一个可能的结果是,天平的一边比另一边重。那么可以确定“缺陷球”肯定位于天平较重一边的3颗球里面。最后一次称量时只要从这3颗球里面任意拿出2颗球,并对它们进行称量。如果两边平衡,则3颗球中剩下的没有参加称量的1颗球就是“缺陷球”,如果两边不平衡,则较重的一边就是“缺陷球”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值