毒药(二进制)"/>
【Uniview面试】老鼠喝毒药(二进制)
题目
在255瓶药剂中最多有一瓶是毒药,现在给你8只白鼠,在12小时内通过白鼠试药的方式,找出哪瓶药有毒(白鼠服完毒药X小时才会反应,10<X<11)。
思考
去宇视面试题没做出来=。=
根据题意,我们只能喂一次小白鼠(一次可以喂多只)。首先可以先把这个问题的规模减小,如果是2瓶水,那1只小白鼠就够了,如果是4瓶水呢?假设是A、B、C、D四瓶水,我们可以这样做A+B混合喂给一个小白鼠1号,A+C喂给一个小白鼠2号,如果1号和2号都死了,那么就是A有毒,如果都没死,那是D有毒,如果只有1号死了,那么是B有毒,如果只有2号死了,那么是C有毒。嗯,有点意思了。给一只小白鼠喂水后最终的结果是生或者死两种状态,也就是说2只小白鼠最多可以表示的状态是4种(根据排列组合原理)。那么要表示255
更多推荐
【Uniview面试】老鼠喝毒药(二进制)
发布评论