1000瓶药水,其中一支有毒,要在24小时内测出来。给10只小狗,狗喝了药,20小时有反映。谁知道怎么测?

来源:百度知道 编辑:UC知道 时间:2024/06/20 09:25:01
这是一个公司的笔试题?题目中只要求狗喝药辩毒,不能闻。

因为2的10次方1024>1000,用10条狗闻(1)或者不闻(0),最后死(1)或者不死(0)可组合1024个不同状态,各代表一个瓶号,可一次性将毒药瓶找出。
假设有3条狗要找出8瓶药中的一瓶毒药(2的3次方=8)。3条狗分别代表3个二进制数位。
瓶号 二进制 狗的状态
瓶0 000 3条狗都不闻
瓶1 001 3号狗闻
瓶2 010 2号狗闻
瓶3 011 2号,3号狗闻
瓶4 100 1号狗闻
瓶5 101 1号,3号狗闻
瓶6 110 1号,2号狗闻
瓶7 111 1,2,3号狗闻

20小时后,3条狗的死和活就是上面8种状态组合。假设20小时后只有2号,3号狗死了,说明瓶3有毒; 假设20小时后,1号,2号,3号狗都死了,说明瓶7有毒。
把这个例子推广到10条狗1000瓶药即可,只是10条狗代表10个二进制数位。

每只小狗每小时25瓶(平均2.4分钟一瓶),20小时后密切关注小狗中毒反应的时间,时间减去20小时,与相应药水相对应,找出有毒的药水!

这问题有意思,请问楼主,这问题有答案吗?