码迷,mamicode.com
首页 > 其他好文 > 详细

1000瓶药水,其中至多有1瓶剧毒

时间:2014-08-10 01:31:59      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:问题   table   on   数学   sp   class   二进制   as   

1000瓶药水,其中至多有1瓶剧毒 

现在给你10只小狗在24小时内通过小狗试药的方式找出哪瓶药有毒或者全部无毒 

(小狗服完药20小时后才能判断是否中毒) 

 

10只小狗每只都有死和不死两种情况,所以死亡情况就有2的10次方=1024种
1024大于1000,也就是说判断出毒药是可以实现的
用2进制表示1000瓶药,用2进制的位表示小狗,就能建立起这个问题的数学模型

1000瓶毒药编号为1-1000
小狗编号10-1
第1瓶给第1只小狗吃。
第2瓶给第2只小狗吃。
第3瓶给第1 2只小狗吃。
第4瓶给第4只小狗吃。
第5瓶给第1 4只小狗吃。
第6瓶给第2 4只小狗吃。
第7瓶给第1 2 4只小狗吃。
...
以此类推
...
第1000瓶给第10 9 8 7 6 4只小狗吃。
根据小狗死的情况就知道吃药的情况。

在2进制中1000瓶药表示为
1.10.11.100.101.110.111.1000.1001.1010.1011......
...1111101000
看哪些狗死了,比如说第10 7 4 3 2 1只小狗死了
我们就可以得出毒药是第1001001111瓶。
换算回十进制就是1+2+4+8+64+512=591
也就是说第591瓶是毒药。

 

逆向思考:假设第X瓶水有毒,可以得出X的二进制,X的二进制与兔子的生死排列一致

 

1000瓶药水,其中至多有1瓶剧毒,布布扣,bubuko.com

1000瓶药水,其中至多有1瓶剧毒

标签:问题   table   on   数学   sp   class   二进制   as   

原文地址:http://www.cnblogs.com/longneo/p/3901795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!