称3次,找出坏鸡蛋

Posted xiaolongren

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了称3次,找出坏鸡蛋相关的知识,希望对你有一定的参考价值。

有十二个鸡蛋,其中有一个是坏的(重量与其余鸡蛋不同),现要求用天平称三次,称出坏的那个鸡蛋

 

准备工作:将十二个鸡蛋编号,1、2、3......11、12。分为三组,1、2、3、4为第一组,5、6、7、8为第二组,9、10、11、12为第三组。其中,Time = ?表示这是第?次称。

分析:取第一组、第二组,分别放置在天平两端,两种情况:平衡,不平衡(Time = 1)

  ♦ if (平衡):这8个鸡蛋都是好的,取3个(1、2、3)出来,和剩下4个中的任意3个(假设是9、10、11),将这两组分别放在天平两端,两种情况:平衡,不平衡(Time = 2)

        if(平衡):1-11鸡蛋都是好的,鸡蛋12是坏的(只称了两次,找出了坏鸡蛋),任选一个好鸡蛋,和鸡蛋12放在天平两端(找出坏鸡蛋是轻还是重)(Time = 3)

        else(不平衡):9、10、11的三个鸡蛋中有一个是坏的,鸡蛋12是好的(并且知道坏鸡蛋是轻还是重)。任取两个鸡蛋(9、10),放在天平两端,两种情况:平衡,不平衡(TIme = 3)

                if(平衡):鸡蛋11是坏的

                else(不平衡):根据轻重得出9、10两个鸡蛋中哪个是坏鸡蛋

  ♦ else(不平衡):第三组鸡蛋9、10、11、12是好的。第一组和第二组的鸡蛋一定是一组轻,而另一组重(假设第一组重<1、2、3、4>)。从第三组鸡蛋重任取3个(9、10、11),将4、5、6、7作为第一组,8、9、10、11作为第二组分别放在天平两端,则有三种情况:第一组重或第二组重(不平衡),一样重(平衡)(Time = 2),分别如下:

  A、第一组重,因为9、10、11是好鸡蛋,而5、6、7不管是放左边还是右边,对哪边重并未影响,所以有问题的在4、8之间,取鸡蛋12和4、8中的任一鸡蛋比较轻重(Time = 3),从而找出有问题的鸡蛋

  B、第二组重,则问题出在5、6、7鸡蛋上,且知道坏鸡蛋比好鸡蛋轻,任取两个鸡蛋(5、6)放天平两端称,不平衡(Time = 3),则轻的为坏鸡蛋;否则7为坏鸡蛋

  C、一样重,则问题在1、2、3鸡蛋上,且可以知道坏鸡蛋比较重,任取两个(1、2)放在天平两端(Time = 3),不平衡,则重的为坏鸡蛋;否则3为坏鸡蛋

 

    

以上是关于称3次,找出坏鸡蛋的主要内容,如果未能解决你的问题,请参考以下文章

高楼扔鸡蛋,非常浅显易懂的方式,但是复杂度并不是最低啊

text N层楼K个鸡蛋抛,判断临界点不会碎的楼层,要保证能测出鸡蛋恰好会碎的楼层,并使此策略在最坏情况下所扔次数最少

openjudge7627 鸡蛋的硬度

你拿着两个鸡蛋站在 100 层的大楼上。鸡蛋或许结实到从楼顶掉下也不会摔破。或许很易碎,在一楼摔下就破碎。

由2个鸡蛋从100层楼下落到HashMap的算法优化联想

鸡蛋掉落问题解析