学会这个算法,告别地毯式搜索,开启你的大神成长之路

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)

算法入门的开胃菜

有兴趣的朋友可以查看冲锋哥的简介,有更为详细的资料等你。

以上是关于学会这个算法,告别地毯式搜索,开启你的大神成长之路的主要内容,如果未能解决你的问题,请参考以下文章

华为云技术分享Python成长之路机器学习:10+分类算法汇总学习

新的征程

广度优先搜索解决迷宫问题

Python大神成长之路: 第二次学习记录

Python大神成长之路: 第一次学习记录

算法之深度和广度优先搜索算法