Google研发面试题

今天很开心找到了一个很不错的研发面试题,很考验临时反应能力,特地拿出来和大家分享一下此题以及自己做该题的心得体会!!!

 题目:

总共有12个外表都一样的金属球,其中有11个球的重量是相同的,1个球的重量可能比其他11个球要重,也可能比较其他11个球轻,这个球称之为异常球,问:如何利用一个天平来称重三次找出这个异常球?

 

 

下面来讲解我的思路,希望大家拿出笔和纸。

首先我们将12个球分为三份,将球依次排好序号为1-12,如下:

A组选手:1,2,3,4         B组选手:5,6,7,8         C组选手:9,10,11,12

任意拿出两组放在天平两边,下面我们就以拿出AB比较。

【1】如果A == B,因为只有1个异常球,而A == B,则说明C组(9,10,11,12)异常球:

  紧接着从C组(异常组中)取出3个球,从正常组A或者B组中也取出3个球来进行比较,例如我们取出B组6,7,8【左边】    vs  C组9,10,11 【右边】

  如果天平平衡,则C组剩下的球就为异常球,这样就比较2次;

  如果天平不平衡,那就知道了异常球是重还是轻,

    那就从右边的三个球中再任取两个,放入天平中:

      如果天平平衡,剩下的球即为异常球;这样就比较2次

      如果不平衡,则可根据上面已经得出的结论:异常球是重还是轻的结论判断哪一个是异常球,这样比较3次

 

【2】如果A != B,因为只有1个异常球,则说明C组为标准球,异常球在A组或者B组中

  此时要分两种情况来分析:

  (1)左侧重右侧轻1,2,3,4 > 5,6,7,8(2)左侧轻右侧重1,2,3,4 < 5,6,7,8

========》

  (1)左侧重右侧轻1,2,3,4 5,6,7,8 【异常球可能是1,2,3,4重,或者5,6,7,8轻】

      然后我们比较16,7,859,10,11 ------>(9,10,11是正常球标准球)

  如果平衡:

就可以说明,16,7,85 是标准球,结合上一个比较结果,可以得出的是异常球为2,3,4且为重球,这样从2,3,4里面找两个球比对一下即可,这样就比较3次;

  如果不平衡:

    左侧重:则1为异常重球,这样就比较2次

      左侧轻:异常球是6,7,8且为轻球,从三个球中选出两个再次称一次选择轻的即可,这样就比较3次

 

 

(2)左侧轻右侧重即1,2,3,4 < 5,6,7,8 解法同上面差不多【异常球可能是1,2,3,4轻,或者 5,6,7,8重】

然后我们比较2,3,4519,10,11------->(9,10,11是正常球标准球)

如果平衡:

就可以说明1,2,3,45是标准球,结合上一次的比较结果,可以得出的是异常球为6,7,8且为重球,这样从6,7,8里面选择两个球比对一次即可得出结论,这样就比较3次;

如果不平衡:
  左侧重: 则5为异常球(结合1,2,3,4 < 5,6,7,8),这样就比较2次;

左侧轻: 异常球为2,3,4且为轻球,从三个球中选择两个球再称一次,选择轻的即可,这样就比较3次.

 

上面就是关于这个题目,我的思路和解法,欢迎大家指正!!!写完正好凌晨一点钟,晚安喽!

 

posted @ 2019-10-24 00:46  国孩  阅读(347)  评论(0编辑  收藏  举报