鉴别毒水问题

一、有1000瓶水,其中有一瓶有剧毒(假设哪怕一个毒药分子在里面也能致命),现在给你10只小狗在24小时内通过小狗试药的方式鉴定出来哪瓶药有毒。
情况1:假设小狗服药后2小时内即可判断是否中毒,鉴别方案有哪些?
情况2:假设小狗服药之后20小时才能判断是否中毒,鉴别方案又是什么?

对与情况1,由于要求24小时内得出结果,因此最多可以等待12次试验结果,因此可以采用简单的二分查找的方法找到有毒的水。

对于情况2,由于20小时后才能判断是否中毒,因此只能等待1次试验结果。这个问题的模型就是用10位二进制位可以表示1000(二进制表示111110100)内的一个数字.我们用8瓶水说明情况(要用3个小白鼠做实验哦)。

000=0
001=1
010=2
011=3
100=4
101=5
110=6
111=7
一位表示一个老鼠,0-7表示8个瓶子。也就是分别将1、3、5、7号瓶子的药混起来给老鼠1吃,2、3、6、7号瓶子的药混起来给老鼠2吃,4、5、6、7号瓶子的药混起来给老鼠3吃,哪个老鼠死了,相应的位标为1。如老鼠1死了、老鼠2没死、老鼠3死了,那么就是101=5号瓶子有毒。   

 二、8瓶水中有2瓶有毒,会使小白鼠在24小时后死亡,给你6只小白鼠,怎样能在24小时后确定哪2瓶水有毒?

说个简单的办法 将8瓶水矩阵来摆 分别编号12345678


123
456
78
一二三老鼠 分别横向喝 即一老鼠喝123的混合 二老鼠喝456的混合 三老鼠喝78的混合
四五六老鼠 分别纵向喝 即四老鼠喝147的混合 五老鼠喝258的混合 六老鼠喝36的混合
24小时过后 死老鼠所对应的直线交点就是 两瓶毒药位置


关于毒药问题 还可以用二进制转化十进制的办法处理 但是那种比较适合在一瓶毒药情况下
用到的白鼠数量较少
但是用矩阵的办法可以无视毒药数量 完全检验出毒药

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值