【笔试题】快速分沙堆,辨别出十堆沙子中哪堆沙子溶解会变色?
【笔试题】有1000瓶药水,但其中有一瓶毒药水,需要多少只小白鼠?
1、题目描述
假如现只有四核量杯和十堆沙子,沙子外观一致,但是其中有一堆沙子溶解在水中会变色,溶解需要两分钟。现时间紧迫,需要在两分钟内快速辨别 出十堆沙子中是哪一堆沙子溶解会变色?
2、分析思路
只需要两分钟就可以检测出是哪堆沙子溶解会变色。(采用四位二进制码的思想)
首先,将十堆沙子依次编号1~10,将1号沙子往一号量杯放入一部分,将2号沙子往2号量杯放入一部分,将3号沙子分别向一号和二号量杯放入一部分……以此类推。
沙子 | 二进制编码 | 量杯 |
---|---|---|
1 | 0001 | 一 |
2 | 0010 | 二 |
3 | 0011 | 一、二 |
4 | 0100 | 三 |
5 | 0101 | 一、三 |
6 | 0110 | 二、三 |
7 | 0111 | 一、二、三 |
8 | 1000 | 四 |
9 | 1001 | 一、四 |
10 | 1010 | 二、四 |
也就是说,将10堆沙子转换成二进制,对应的二进制位为1表示该堆沙子可以放入这个量杯中,为0表示该堆沙子不可以放入这个量杯中。两分钟后,就可以根据量杯的颜色辨别是哪堆沙子溶解会变色。
通过观察四个量杯颜色就可以辨别出是哪堆沙子溶解会变颜色。假如一、二、三号量杯都变色了 ,说明是7号沙堆溶解会变色;假如一、四号量杯都变色了 ,说明是9号沙堆溶解会变色;假如二、三号量杯都变色了 ,说明是6号沙堆溶解会变色。
3、开拓思维
针对这个问题,只要沙子不超过16堆都可以用四个量杯在两分钟内快速检测出来的。
已知 x x x 堆沙子和 m m m 个量杯,它们满足 2 x ≥ m 2^x \geq m 2x≥m 就可以快速辨别出是哪一堆沙子溶解会变色。
发散思维,注重积累!