算法思考题-三只老鼠找8瓶毒药思路

文章讲述了如何利用三只老鼠在24小时内找出8瓶药中仅有一瓶毒药的策略,通过将老鼠和药瓶对应二进制编码,一天内确定有毒药的瓶子,挑战了传统二分法的思维方式。
摘要由CSDN通过智能技术生成

算法思考题-三只老鼠找8瓶毒药思路

问题描述:

有8瓶药,其中只有一瓶是毒药,药性很强,一滴致死,你有三只老鼠试毒,但毒药发作时间时24小时,你最短能在几天试出有毒的药呢?
提示,老鼠可以一次喝一瓶,也可以一次喝多瓶。


思路:二的三次方等于八!!!!


原因分析:

一:往往最开始会想到二分法,先将瓶子均分成两份,左边4瓶右边四瓶,第二天再分左二右二,第三天再分左一右一,这需要三天的时间!!!!
二:将瓶子两两分为一组,编为1,2,3,4 ,第一天,三只老鼠喝:1,2,3,有毒死的情况,则变成了2选一,此时还有两只老鼠,毒药在对应的两个瓶子当中,两天即可。但这是最快的情况了吗????

这些东西网上蛮多,不新鲜了,但我之前一直没搞明白,就算使用二进制,还是不知道这些药为什么那么分!
哈哈哈哈,是我不够聪明,看了几遍也没想明白,直到我把图画出来!!!!!!


解决方案:一天找到!!!

思路的核心其实先是想到 8 瓶药 而三只老鼠死亡情况的排列组合刚好也是8种情况(包含都不死)2^3 = 8
将老鼠分为ABC,那他们死亡的情况可分为以下8种:其中0代表活着,1代表死亡:
在这里插入图片描述
下面红线标出的是A老鼠死亡的情况,B老鼠死亡的情况以及C老鼠死亡的情况:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
为什么要列出来,因为我们的关键是要知道药水怎么分配——上图:

在这里插入图片描述所以,我们将瓶子编0~7号 ,按照老鼠死亡的情况对应的十进制号码分别给它们喝下对应的四瓶药。
根据死亡的情况推导出有毒的瓶子,一天即可!!!!!!!!!!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值