学会这个算法,告别地毯式搜索,开启你的大神成长之路
Posted IT界的冲锋号
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学会这个算法,告别地毯式搜索,开启你的大神成长之路相关的知识,希望对你有一定的参考价值。
题目如下:
现有1000瓶药,其中有1瓶毒药,老鼠喝了之后1小时后才产生效果。问怎样用最少的时间,和最少的老鼠找出毒药?
哈哈,这还不简单,找1000只老鼠,每只都喂,等一个小时,看哪只老鼠不行了;
要不,就给我一只老鼠,喂一瓶等一个小时,直到老鼠出问题,毒药就检测出来了。
正经点~!
答案是1个小时,11只老鼠
因为老鼠只有2种状态,良好/异常
我们先吧1000瓶药用二进制编号(二进制在线转换工具 https://tool.lu/hexconvert/)
顺便把二进制,各个位拆开得到右图的效果;
接下来,准备好标签和老鼠;
让老鼠喝上图右边值为1的瓶子(可以借助Excel筛选排序,现在已经做好了标注)
1).第1只喝999,997,995,993,991,.....
2).第2只喝999,998,995,994,991,.....
3).第3只喝999,998,997,996,991,.....
以此类推
再静静等待1个小时,看看哪几只老鼠,出现异常。
再通过二进制转十进制计算就知道,哪瓶是毒药了。
假如是,1,8,10号出现异常
那么就是2^0+2^7+2^9=641(表格的二进制转换时+1了,这里要-1)
算法入门的开胃菜
有兴趣的朋友可以查看冲锋哥的简介,有更为详细的资料等你。
以上是关于学会这个算法,告别地毯式搜索,开启你的大神成长之路的主要内容,如果未能解决你的问题,请参考以下文章