其他分享
首页 > 其他分享> > 毒药水问题

毒药水问题

作者:互联网

题目大概描述:
有1000瓶药水,其中有一瓶是有毒的,用现有的老鼠来验证哪一瓶是有毒的?
思路:
1.二分法:最多需要log(2)1000
2.多分法,比如每次三个分为一组:1000–>(333,333,334)—>111->37->(12,12,13)->(4,4,5)->(2,2,1) -> 1
3.转化为二进制来测试:仅需十位二进制就可以表示十进制1-1024的值,
所以一千只老鼠,用十位二进制就可以表示出来。
实现步骤:
(1)给定十只老鼠,将他们从1-10进行编号;
(2)将这一千瓶药水用二进制编号:从000 000 0001到 111 110 1000;
(3)这一千瓶药水的第几位编号是一,就让哪只老鼠去喝,比如,第一瓶药水的第十位是1,那么就让编号是10的老鼠去喝;第一千瓶同时让第1,2,3,4,5,7老鼠去喝,根据死去的老鼠进行还原,就可以知道是哪一瓶有毒了。

标签:老鼠,药水,二进制,问题,一瓶,编号,毒药,1000
来源: https://blog.csdn.net/ZYYYYYYY123/article/details/120587750