程序员面试经典智力题简单分析
有20瓶相同包装药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。
我的分析:由于有两个限制条件天平只能用一次与包装相同,所以这题目标就是化解这两个条件的限制。
其一天平只能用一次说明我们必须在一次称重时涉及到全部20瓶药丸才有可能得出结果。
其二包装相同言外之意就是需要我们给20瓶药丸定义区分,然而最简单的定义区分就是自然排序,我们可以依次从20瓶药丸中拿出1到20粒药丸。这样排序就是拿出药丸数量。
综合两个限制条件的分析结果不难发现,较重的那瓶药丸排序为n且1≤n≤20。这样我们可以把拿出来的所有药丸放到天平称重得出数值z,很好得到n=【z-(1+ … + 20)】/(1.1-1)。