美文网首页
逻辑算法题(不断更新)

逻辑算法题(不断更新)

作者: BigX | 来源:发表于2019-10-30 11:17 被阅读0次

1.老鼠试毒问题

此题有三种方式,第一种是给定老鼠和试毒药剂数量,问如何找到毒药,第二种是给定药剂数量,问最少需要多少只老鼠就可以试出毒药;第三种是给定老鼠数量,问最多能试出多少瓶毒药。这里以第一种方式来问问题。

问:有1000瓶药剂和10只老鼠,药剂中有1瓶毒药,喝了一周内死亡(有的题目改成了五分钟,五分钟真亏他能喂完),如何在一周内找到这瓶毒药。
答:将这1000瓶药剂编号0~999,并转换为二进制 就是0000000001~1111101000,从右向左开始,让第一只老鼠喝所有右起第一位编号为1的药剂,第二只老鼠喝所有右起第二位编号为1的药剂,依次类推,10只老鼠喝完10位的药剂,一周后,如果第一只老鼠死亡,那么毒药的从右起第一位为1,未死亡的话就为0,所以根据死亡状态就可以知道该瓶毒药的二进制。
例如状态是:死亡,存活,死亡,存活,存活,存活,死亡,存活,死亡,存活 = 010111010=186
从上面例子就可以知道第二种和第三种问题的解法了吧

扩展:

假如测试时间提升到两周,那么测试特定数量的药剂需要的老鼠数量是多少?

测试时间提升为两周就说明第一周测试不死的老鼠可以拿来继续第二周的测试 ,所以老鼠的状态就变成了三种:存活(未实验),死亡,实验后存活。
将全部药剂编号后转为三进制数,老鼠右起依次喝0编号的药剂,如果死亡,那么该位编号为0,如果未死亡,那么可能为1和2,第二周把存活的老鼠继续喝该位1编号的药剂,如果死亡就为1,存活就为2,这样就找到了毒药的三进制编号,然后转换成下标即可。

总结:有 n 只小白鼠 m周的时间可以从 (m+1)^n 个瓶子中检验出毒药来。

相关文章

  • 逻辑算法题(不断更新)

    1.老鼠试毒问题 此题有三种方式,第一种是给定老鼠和试毒药剂数量,问如何找到毒药,第二种是给定药剂数量,问最少需要...

  • 社招一年:算法面经

    美团算法面经(搜索算法) 一面 逻辑题:8 5 3升的桶 8升水, 分成两个4升比较简单的逻辑题,也有通用题目 L...

  • 面试算法逻辑题

    1、编写程序,编写节点类且有name属性 ,实例化6个节点,A节点和B、C、D有关联,B和E、F有关联,那么编写程...

  • BD1 - Java 1-1

    面试时考查:Java基础逻辑思维读代码能力写代码能力(编程题)算法题 学习过程中 要从网上找题刷题!再看公司的需求...

  • BD1 - Java 1-4 周五总结

    上午小组总结: 关于收获: 面试时考查: Java基础 逻辑思维 读代码能力 写代码能力(编程题) 算法题 学习过...

  • 面试时遇见算法题该怎么办?

    每周一道算法题,提升自己的逻辑思维 不知不觉已经是第三周了,我知道你们其实都并不爱看每周的这道算法题,既枯燥还无趣...

  • Android面经| 算法题解

    整理了校招面试算法题,部分《剑指offer》算法题,以及LeetCode算法题,本博文中算法题均使用Java实现校...

  • 算法把我的代码缩减了三倍

    下午上完课后做了一道算法题, 百无聊赖 想着, 我之前Java阶段做的游戏是逻辑游戏 现在学了一些算法 是不是之前...

  • 面试题高频算法题整理

    以下算法题几乎都是简单题,都为面试算法题值得刷的题,需要理解并记住解题思路,而其中★标注的题,更是面试算法题中的高...

  • 人生算法

    算法像是软件专业术语 人生也可以有算法 那就是一种决策模式 正确的算法更加高效,结果更好 不断更新和升级人生算法,...

网友评论

      本文标题:逻辑算法题(不断更新)

      本文链接:https://www.haomeiwen.com/subject/cuhovctx.html