有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠.
2016-02-27 14:56
801 查看
选项是9只、10只、32只、999只、以上都不是.
答案:10只
一只老鼠喝酒后又两种状态:死(0)和活(1).
所以10只老鼠就能表示2的10次方个状态(即1024个).2^0表示2的零次方.2^8表示2的8次方.
设有10只老鼠编号分别为2^0,2^1,2^2,2^3,2^4,2^5,2^6,2^7,2^8,2^9.有1000桶酒编号为1,2,3.一直到 1000.
任何一桶酒的编号都能分解为2的幂指数之和的形式,而且唯一.比如:第九桶酒 9= 2^0 + 2^3
(那么我们就让编号为2^0和 2^3的这两只老鼠去喝这桶酒)最后只要看哪几只老鼠死了就知道是哪桶酒有问题.(只要把死了的老鼠编号加起来就是酒桶的编号)
答案:10只
一只老鼠喝酒后又两种状态:死(0)和活(1).
所以10只老鼠就能表示2的10次方个状态(即1024个).2^0表示2的零次方.2^8表示2的8次方.
设有10只老鼠编号分别为2^0,2^1,2^2,2^3,2^4,2^5,2^6,2^7,2^8,2^9.有1000桶酒编号为1,2,3.一直到 1000.
任何一桶酒的编号都能分解为2的幂指数之和的形式,而且唯一.比如:第九桶酒 9= 2^0 + 2^3
(那么我们就让编号为2^0和 2^3的这两只老鼠去喝这桶酒)最后只要看哪几只老鼠死了就知道是哪桶酒有问题.(只要把死了的老鼠编号加起来就是酒桶的编号)
比如:第70桶酒,70转换成二进制就是0001000110,那么就给第四、八、九只老鼠喝。如果最后死掉第三、七、八只老鼠,那么就是0010001100,转换成十进制就是140,即140桶酒有毒。如果是第3和第10只老鼠死掉,即是:0010000001,转换10进制为2^2+2^9=4+512=516桶酒有毒
相关文章推荐
- [jQuery]ajax请求导致浏览器崩溃
- Eclipse中同时打开多个Console
- Eclipse中同时打开多个Console
- 线程池
- [maya学习笔记(13)] 合并 补洞
- Redis事务测试
- OkHttp使用教程
- Eclipse中同时打开多个Console
- 在Linux(ubuntu server)上面安装NodeJS的正确姿势
- android 性能优化-电量篇
- Sublime Text 3必备插件
- Tornado设置数据库的Timezone
- git解决分支冲突
- vc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element
- Word中插入带公式的Visio注意事项
- 用CocoaPods和ReactiveCocoa的安装
- 归并排序及利用归并排序求逆序对数
- vs在不同版本的opencv之间切换
- poj-3112 Pie
- Centos6 安装mysql5.6 以及ERROR 2002 ERROR 1045 解决方法