原来信息论中早已对此类问题有所总结。
如果学习过信息论,可以在知道很少的条件下,通过香农理论,可以快速推出正确结果。
看来得抽个时间看一下信息论了。
十二个鸡蛋问题
十二个鸡蛋问题
今天因为有领导来指导公司业务系统的具体流程,再加上老总想推RFID物联网项目,所以把我们搞硬件的几个也给叫上开会,向他们展示了一下最新成果。然后和他们讨论一下如何将这一块接入到业务系统这套平台上。结束后基本上已经6点半了,然后一堆人去吃饭。在饭局上,领导看我们几个比较年轻,刚刚参加工作,就出了两个题考考我们。
三个5和一个1
第一个题目是算24点,这个我们小时候都玩过的。他给的四个数是5,5,5,1,让我们两个90后算算,如何得到24点。我一想不就24点嘛,有什么难的。但是一算,诶,怎么好像哪里不对,为什么算不出来?我照着一般的方法算不出来,直到有人提示说1/5,我才猛然想到,5-1/5=24/5,再乘上5,那不就是24了。o(︶︿︶)o 唉,竟然这么简单,亏我还想了好久,真是惭愧。
十二个鸡蛋问题
第二题是说有十二个鸡蛋,十一个是正常的,默认正常的重量是一样的,有一只是坏的,但是不知道它是重,还是轻。你手头上有一个没有砝码的天枰,要你称3次,知道哪个是坏的,是轻还是重。
我只想出了一半,回去之后和同学一说,他想了几分钟,就想出了另一般。 解法有点长,如下所示:
- 将十二个鸡蛋分成三组,四个一组;
- 将任意两组放在天枰的两端,若平衡,跳到3;若不平衡,跳到6;
- 此时,坏的那个蛋在剩下的一组中,这时将天枰的一边拿掉一个蛋,另一边放上剩下的一组中的三个,若平衡,跳到4;若不平衡,跳到5;
- 此时可以确定剩下的一个是坏的,那么拿一个正常的,和这个坏的进行称,就可以得出它是重,还是轻;
- 此时可以确定坏的那个蛋是轻还是重,并且那个蛋是在刚才放入的三个蛋中;再从这三个蛋中拿去两个,两边各放一个,若平衡,那么剩下的那个是坏的;若不平衡,你也可以判断出哪个是坏的。
- 此时剩下的这一组就全是正常的,将一边的蛋移去三个,从另一边拿两个过来,再从正常的组里拿一个放到另一边;若和原来一样,跳到7;若平衡了,跳到8;若和原来不一样,跳到9;
- 此时可以说明,没有移动过的三个蛋中有一个是坏的,一边有一个是没移动过的,另一边有两个;将只有一个的移到另一边,换下另外那边两个中的一个蛋,在放入正常的蛋,使两边3比3,若天枰倾斜不变,则移过去的那个是好的,被换下的也是好的,剩下的是坏的; 若天枰倾斜相反,换过去的是坏的;若天枰平衡,换过去的是正常的,则被换下的是坏的;
- 此时说明被换下的三个中有一个是坏的,并且我们可以根据第一次比的可以推出这个坏的是重还是轻;接下去就是可以跳到5;
- 此时就可以知道刚刚移过来的两个中有一个是坏的,并且还可以知道坏的那个是轻还是重,最后称这两个就可以知道那个是坏的。
到此,所有情况都已叙述完毕,应该是没有错的,如果有错,请告知。