经典智力题
1 称药问题
有10罐药,其中有一罐已经变质……已知正常的药每粒10g,变质的每粒9g,那么怎样只称一次就查出哪罐变质了?
解:从10罐药中依次取1, 2, 3, 4, …, 10颗,如果药粒均为10g的话,取出的药总重是(1 + 2 + 3 + … + 10) * 10 = 550g,存在变质的话,质量小于550g,550g –称出的重量便是所属的罐子。
PS:
如果有多瓶药变质的话,又怎么才能找到变质的罐呢?
解:那么用上方法就无法解了,例如少了10g的话,可能是2和8号罐子药变质了。
在上方法中,1, 2, …, 10的编码不唯一,采用二进制编码1~10里取药,即分别取1, 2, 4, …, 512颗。如是总重量少了10g,10 = (1010),可以知道,是2号和4号罐里的药变质了。
2 称球问题
一共12个同样的小球,其中只有一个坏球重量与其它不一样(未知轻重),给你一个天平,最少几次能找出那个不同重量的球。
解:3次;
1、 将12个球编号1~12,均分为三组,取1~4,5~8天平称重;
2、 平衡则坏球在9~12号球中;
2.1 将9、10球称;
2.2 相等则9, 11再称,相等则12坏,不等则11坏;
2.3 不等则仍9, 11称,相等则10坏,不等则9坏;
3、 不平衡,则坏球在1~8号中,不防设1~4重,5~8轻;
4、 将1,5~7放一端,8~11放另一端,称重;
4.1 相等,则2~4有一个太重;再称2和3即可;
4.2 不相等,如果1,5~7重,则1太重或8太轻,取一正常球与1或8称即可;
如果1,5~7轻,则5~7中有一个太轻,再称5和6即可。
3 赛马问题
有25匹马,速度都不同,但每匹马的速度都是定值。现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。问最少赛几场可以找出25匹马中速度最快的前3名?
解:7次
1、 分5组,跑5次后能得到前五组排序好的马;
2、 用5组的第1名赛名,可以得到当前第1名的马,第4、5名的马不可以争前3。第1名组的2、3名,第2名组的1、2名,第3名组的第1名,该5匹马为争第2、3名的候选;
3、 上述5匹候选马赛跑便可得到2、3名。
参考文档: