老鼠试药
现有一千瓶药水,其中九百九十九瓶是完全一样的,只有一瓶里面是毒药,但是外观上分辨不出来。毒药给小白鼠喝了后,一星期后这只小白鼠会突然死亡,但之前一点症状也没有。现需要在一星期后找出哪瓶是毒药,问至少需要几只小白鼠?
答案
二进制问题,10只即可,10只最多可测试1024瓶药水
问题解析
瓶子编号:给每个瓶子用二进制编号,总共有1000瓶,2的10次方等于1024,只需用十位二进制就可表示所有的瓶子,每一位依次用w1、w2、…w10表示。
老鼠编号:十位二进制c1、c2、…c10分别给十只老鼠编号,
编号c1的老鼠只喝w1位上为1的药水瓶,编号c2的老鼠只喝w2位上为1的药水瓶,依次类推。最后看哪些老鼠死掉,例如c10、c8、c7、c4、c3、c1编号的老鼠死掉,那么有毒药水的编号就是10 1100 1101

简化一下:如果只有8瓶,至少需要几只老鼠???
药水瓶编号是000 001 010 011 100 101 110 111,
三位二进制w1、w2、w3
三只老鼠是c1、c2、c3,
老鼠c1、c2、c3与三位二进制w1、w2、w3一一对应
c3喝: 100 101 110 111(第三位是1的都喝)
c2喝: 010 011 110 111(第二位是1的都喝)
c3喝: 001 011 101 111(第一位是1的都喝)

最后假设c3死了,那么100是毒药
假设c3c2死了,那么110是毒药
c2c1死了,那么011是毒药,
类推,哪只老鼠死对应位上就是1,没死为0,得出的结果就是毒药瓶编号

老鼠试药——二进制算法相关推荐

  1. 二进制老鼠毒药c语言,老鼠试药  二进制问题

    简化一下:如果只有8瓶,至少需要几只老鼠??? 药水瓶编号是000 001 010 011 100 101 110 111, 三位二进制w1.w2.w3 三只老鼠是c1.c2.c3, 老鼠c1.c2. ...

  2. JAVA:实现十进制转二进制算法(附完整源码)

    JAVA:实现十进制转二进制算法 package com.thealgorithms.conversions;import java.util.Scanner;/*** This class conv ...

  3. python:实现十进制转二进制算法(附完整源码)

    python:实现十进制转二进制算法 def decimal_to_binary(num: int) -> str:if isinstance(num, float):raise TypeErr ...

  4. python以递归的方式实现十进制转二进制算法(附完整源码)

    python以递归的方式实现十进制转二进制算法 def binary_recursive(decimal: int) -> str:decimal = int(decimal)if decima ...

  5. 二进制算法_本地二进制模式算法:其背后的数学❗️

    二进制算法

  6. 八进制转二进制算法 c语言,二进制和八转换互转-二进制转八进制-八进制转二进制-嗨客网...

    二进制整数转八进制 算法 二进制整数转换为八进制整数时,每三位二进制数字转换为一位八进制数字,运算的顺序是从低位向高位依次进行,高位不足三位用零补齐. 八进制整数转二进制 算法 八进制整数转换为二进制 ...

  7. Go:十进制转二进制算法(附完整源码)

    Go:十进制转二进制算法 package conversion// Importing necessary package. import ("errors""strco ...

  8. 八进制转为二进制算法

    八,十六,四进制转为二进制 算法思想如图所示: 八进制,十六进制,四进制,N进制(N是2的x次方)都可以用这个算法!我这里用八进制为例. 这个算法主要有两点 1.把要转换的数拆分成单个的数存入数组1. ...

  9. 现代计算机的二进制算法,源自中国智慧神秘巨著《周易》

    想说说计算机和二进制的关系,之后再说说计算机的发展和计算机语言,在众多资料中看到了这篇文章,感觉非常高大上,拿来分享!如果看不下去了,就直接看文末吧! 标题这个说法,貌似有点道理,而且流传已久.那么我 ...

最新文章

  1. R语言|PLS_DA分析绘图示例
  2. nodejs繁琐地自建路由
  3. NR 5G (2G-5G)通信核心网演进
  4. oracle简写sql,Oracle通过sqlplus编辑sql命令
  5. plsql存储过程修改后怎么保存_Solidity变量存储位置与gas成本详解
  6. 103. 二叉树的锯齿形层次遍历
  7. 关于SQL Server 2005服务无法启动,报3417错误。(附带重装SQL时解决COM+目录问题)(转帖)
  8. linux内存管理(十二)-直接页面回收
  9. hdu 5031 Lines 爆搜
  10. k8s springboot 文件_用Kubernetes部署Springboot或Nginx,也就一个文件的事
  11. 对于algorithm102的总结
  12. 值得尝试的 MQTT 客户端工具
  13. OSGEarth基于经纬度获取高程数据
  14. linux一键安装aria2,Linux一键安装Aria2+Yaaw+FileManager实现BT磁力下载,并在线查看/观看...
  15. nat64 dns64 linux 内核支持,搭建NAT64/DNS6实现IPv4/v6转换
  16. 微博营销案例 – 运来大师看手相
  17. git报错 warning: Clone succeeded, but checkout failed.
  18. APS系统是什么?APS系统是什么意思?
  19. 别让抱怨毁了你的工作生活
  20. Go实现http接口压测工具

热门文章

  1. Python谷歌小恐龙--Pygame
  2. Navigation的基本使用
  3. Java状态码枚举类
  4. 周易六十四卦——豫卦
  5. Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null objec
  6. 【进制】计算机底层是如何计算2+3的?
  7. 2017黑科技趋势最具看点的十大新品
  8. 手机的“隔空打印”功能了解一下,不需要电脑也可以打印
  9. react中将json对象转换为数组
  10. Cheat Engine 小白教程(大白话教学)上篇