10只老鼠与1000瓶药水_有1000瓶水,其中一瓶是毒药,全都无色无味。给10只小白鼠 ,小白鼠喝到毒药3-程序员宅基地

技术标签: 面试  IQ  逼格修炼之道  

题目:1000 瓶无色无味的药水,其中有一瓶毒药,10只小白鼠拿过来做实验。喝了无毒的药水第二天没事儿,喝了有毒的药水后第二天会死亡。如何在一天之内(第二天)找出这瓶有毒的药水?

思路:10只小白鼠,喝了药水之后第二天只有存在和挂掉两种情况,我们用计算机二进制里面的0和1来进行模拟,1代表喝、0代表不喝。

【 二进制映射喝法:0000000001对应十进制编号第1瓶药水 】

【 二进制映射喝法:0000000010对应十进制编号第2瓶药水 】

【 二进制映射喝法:0000000011对应十进制编号第3瓶药水 】

【 二进制映射喝法:0000000100对应十进制编号第4瓶药水 】

【 二进制映射喝法:0000000101对应十进制编号第5瓶药水 】

【 二进制映射喝法:0000000110对应十进制编号第6瓶药水 】

【 二进制映射喝法:0000000111对应十进制编号第7瓶药水 】

【 二进制映射喝法:0000001000对应十进制编号第8瓶药水 】

【 二进制映射喝法:0000001001对应十进制编号第9瓶药水 】

【 二进制映射喝法:0000001010对应十进制编号第10瓶药水 】

【 二进制映射喝法:0000001011对应十进制编号第11瓶药水 】

【 二进制映射喝法:0000001100对应十进制编号第12瓶药水 】

【 二进制映射喝法:0000001101对应十进制编号第13瓶药水 】

····至

【 二进制映射喝法:1111100111对应十进制编号第999瓶药水 】

【 二进制映射喝法:1111101000对应十进制编号第1000瓶药水 】

然后,我们把1000瓶药水编号,让10只小白鼠用以上的1000种喝法喝下药水。然后第二天通过观察小白鼠的存活情况,就可以判断出是第几瓶药水是有毒的。(小白鼠也需要编号,我们需要明白同样是死了一只小白鼠,第一只挂掉和第十只挂掉是不一样的。)

以上摘自(点击打开链接


这是我昨晚在微信上看到的一条面试题,当时看答案我都看了好一会才完全看懂。

问题最主要的是两个方面:十只小白鼠要怎么喝?怎么判定哪一瓶是毒药?

后来拿去考了一下室友,刚看到答案也是好像立马懂了,但具体问他小白鼠怎么喝时 逻辑便乱了,显然还没有完全弄明白。上面的答案你看明白了吗?你能清晰的解释这十只小白鼠要怎么喝这1000瓶药水吗?例如刚开始的时候,哪只老鼠喝哪瓶?




其实举具体的例子是理解答案、理解代码最好的方法。

我们把1000瓶药水从1~1000编号,并用二进制表示。十位二进制数对应十只小白鼠,我们对小白鼠从左往右编号1~10。

喝法:第一瓶药水:10号老鼠喝,其它不喝。

      第二瓶药水:9号老鼠喝,其它不喝。

      第三瓶药水:9号和10号老鼠喝,其它不喝。

      第四瓶药水:8号老鼠喝,其它不喝。

      第五瓶药水:8号和10号老鼠喝,其它不喝。

      第六瓶药水:8号和9号老鼠喝,其它不喝

      ……

      ……

      (二进制的每位对应十只小白鼠,1表示喝,0表示不喝。二进制换算成十进制则对应的是第几瓶药水)

结果:假如第十瓶(0000001010)是毒药。二进制0000001010表示7号和9号老鼠喝过,第二天肯定只有这两只老鼠死了。


转载请注明出处,谢谢!(原文链接:http://blog.csdn.net/bone_ace/article/details/44802417

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Bone_ACE/article/details/44802417

智能推荐

Android TBS X5内核 64位手机无法加载x5(libmttwebview.so is 32-bit instead of 64-bit)_libmtttrace.so-程序员宅基地

文章浏览阅读3k次。前言这个问题之前出现过但是稀里糊涂的解决了 没有记录详细的解决方案今天又碰到了 自己研究了一天刚刚找到解决方案错误提示dlopen failed: "/system/app/googlewebview85/lib/arm/libwebviewchromium.so“ is 32-bit instead of 64在使用tbs x5内核时 一直崩溃说没有64位的.so包腾讯官方TBS的文档也有这方面的知识点 但是没有解决方案需要靠自己摸索 你说气人不?新版本SDK已支持64位,请更新至官网_libmtttrace.so

java玫瑰花代码_java程序员不一样浪漫,表白玫瑰花送给你的那个她-程序员宅基地

文章浏览阅读3k次。原标题:java程序员不一样浪漫,表白玫瑰花送给你的那个她这篇文章主要讲解了Java版给爱人表白的玫瑰花程序代码,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧 小编推荐一个学Java的学习裙【二零二,二五零,一九四】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有很多干货和技术分享!1 书写表白语句的frame(渐入功能)?1234567891011..._java玫瑰花代码

Hibernate(映射继承关系、 Hibernate 检索策略、Hibernate 检索方式HQL (迫切)左外连接HQL (迫切)内连接QBC 检索和本地 SQL 检索二级缓存,管理session_hql 非空约束-程序员宅基地

文章浏览阅读203次。上一篇映射继承关系Hibernate支持三种继承映射策略:使用 subclass 进行映射:将域模型中的每一个实体对象映射到一个独立的表中,也就是说不用在关系数据模型中考虑域模型中的继承关系和多态。使用 joined-subclass 进行映射: 对于继承关系中的子类使用同一个表,这就需要在数据库表中增加额外的区分子类类型的字段。使用 union-subclass 进行映射:域模型中的每个类映射到一个表,通过关系数据模型中的外键来描述表之间的继承关系。这也就相当于按照域模型的结构来建立数据库中的_hql 非空约束

软件卸载不掉的解决办法_xsplit vcam 卸载不了-程序员宅基地

文章浏览阅读9.7k次,点赞4次,收藏9次。文章目录背景卸载软件正确步骤总结扩展文档卸载一个软件,倒腾了半天,说出来连我自己都不信。下面记录下卸载软件流程,以及遇到的问题解决办法,希望对遇到问题的同仁有帮助和建议参考。背景在自己的办公电脑上安装了一个老版本的软件A,后来由于产品变更,需要更新软件A到最新的版本。我是直接在安装新版本的软件A,提示“this update is not valid”,我就傻逼兮兮的,直接删掉老版本的软..._xsplit vcam 卸载不了

在 CentOS7 下安装 Cadence IC验证平台 INCISIVE152_cadence incisive-程序员宅基地

文章浏览阅读1.8w次,点赞18次,收藏122次。前言本文所使用的软件虚拟机软件:VMware Workstation 15 PRO 如何安装?操作系统:CentOS-7, CentOS-7-x86_64-DVD-1810.iso 如何安装?简介INCISIVEIncisive是nc_verilog, nc_sim, nc_lauch,以及ABV,TBV的集合,用于仿真和验证。InstallScapeInstallSc..._cadence incisive

CEF中JavaScript与C++交互_duilib使用封装cef的js和c++交互-程序员宅基地

文章浏览阅读4.3w次,点赞12次,收藏62次。在CEF里,JS和Native(C/C++)代码可以很方便的交互,我实现了一个简单的交互示例。_duilib使用封装cef的js和c++交互

随便推点

静态成员-静态成员变量-程序员宅基地

文章浏览阅读3.4k次,点赞4次,收藏22次。静态成员静态成员都是用static修饰,它的特点是不论创建多少个对象,程序都只创建一个静态成员。最主要的特点:共享什么是共享呢?例如:统计超市中所有商品数量的总和,商品数量的总和是随着每一个数量的变化而变化的,这是我们就可以用静态成员处理。(代码下面有写)静态成员又分为静态成员变量和静态成员函数。(一)静态成员变量特点:1、所有对象共享一份数据。 2、在编译阶段分配内存。 3、类内声明,类外初始化。#include<io..._静态成员变量

HTML5七夕情人节表白网页制作【情人节满屏爱心HTML5特效】HTML+CSS+JavaScript html生日快乐祝福网页制作_html 满屏爱心-程序员宅基地

文章浏览阅读879次,点赞21次,收藏20次。1 网页简介:基于HTML+CSS+JavaScript 制作七夕情人节表白网页、生日祝福、七夕告白、 求婚、浪漫爱情3D相册、炫酷代码,快来制作一款高端的表白网页送(他/她)浪漫的告白,制作修改简单,可自行更换背景音乐,文字和图片即可使用等任意html编辑软件进行运行及修改编辑等操作)。_html 满屏爱心

【易飞】易飞ERP自动审核程序功能_易飞单据审批设置-程序员宅基地

文章浏览阅读492次,点赞9次,收藏5次。【代码】【易飞】易飞ERP自动审核程序功能。_易飞单据审批设置

青少年CTF擂台挑战赛 2024 #Round 1_xyctf高校新生联合赛 2024-程序员宅基地

文章浏览阅读1.6k次,点赞15次,收藏30次。文件打开是一个print数组v4的地址和read函数,并且nx好像可写,输入长度可以利用,进行一个栈上写好自己的shell,然后在构造一个回到v4的地址,这样子就可以重新读取到写buf段上的shell,这里要注意shell的隔断用/00截断然后构造好栈上数据。一个sql注入题目,尝试使用二分查找,但只能爆出表名和列名,值一直出不来,后来采用布尔盲注,fuzz测试后发现没有加任何过滤,直接写脚本。第二题:为了求解方程 (5 + sqrt{x} = 8),我们可以分离平方根项,然后求解 (x)。_xyctf高校新生联合赛 2024

spring数据源配置:Tomcat/weblogic数据源切换配置_tomcat 数据库切换-程序员宅基地

文章浏览阅读1.4k次。数据配置方式一般是三种:1.org.springframework.jdbc.datasource.DriverManagerDataSource(没有池概念,有连接就建立一个connection)2.org.apache.commons.dbcp.BasicDataSource(连接池技术)3.org.springframework.jndi.JndiObjectFactoryBea..._tomcat 数据库切换

计算机组成原理 之 计算题、分析题 题解详细总结(已完结)_计算机组成原理计算题-程序员宅基地

文章浏览阅读1.7w次,点赞62次,收藏544次。第1章 计算机系统概述0、1编码第2章 存储系统磁盘存储器第6章 控制器逻辑Intel 8086 指令简介第1章 计算机系统概述0、1编码1、分别求出+1111B和-1001B的真值及其机器数的原码、反码、补码形式。答案:+1111B的真值:15原码01111 反码01111 补码01111-1001B 的真值:-9原码11001 反码10110 补码10111另一种写法:解: +1111B 真值:15D [x]原=01111B [x]反=01111B [x]补=011._计算机组成原理计算题

推荐文章

热门文章

相关标签