Redian新闻
>
分享一道我之前遇到的面试题,面试官说答不出来正常

分享一道我之前遇到的面试题,面试官说答不出来正常

科技

大家好,我是yes。

之前面试遇到一道很有意思的题目,今天来分享一下。

面试官问我这道题之前还给我做了下心理建设,说不用紧张,基本上没啥人可以答出来,你就发散着想想就行。

好了,废话不多说了,我们直接上题。

题目

现在有 10 只小白鼠和 1000 支药水,1000 支药水中有且仅有一支药水有毒,如果小白鼠喝下毒药,那么毒发的时间是两小时。

现在只给你两小时的时间,请问如何用这 10 只小白鼠测出哪支药水有毒?(忽略小白鼠喝药的时间)。

思考

当时听完这题,我第一反应是:这题是不是在逗我?

就 10 只小白鼠,喝 1000 支药水,那么一只小白鼠肯定要喝多支药水,假设某只小白鼠两小时后死了,我怎么确定它到底是因为喝了哪支药水死的?

我直接把我的这个想法跟面试官说了,我说这题目是不是有问题,面试官微微一笑,他说题目没问题,你再想想

再想想

看到这,不知道诸位是否有啥想法,期间面试官给了我一个提示:10 如何能代表 1000

这里建议先想个两分钟,各位再思考思考,没啥思路再看我下面的解答。

解答

不卖关子了,反正我当时没想出来,哈哈,一下子联想不到那里,但是这题听完答案之后又会豁然开朗。

10 如何能代表 1000?重点就是这个提示,其实就是二进制。

10 只小白鼠,我们分别给它们编号,从 0-9。

每只老鼠喝下药水,最终的结果要么是生,要么是死,所以有两种状态。

看到这是不是有点感觉了?

两种状态就是二进制的 0 和 1。

如下图所示:

所以,每只小白鼠有两种状态,那么 10 只小白鼠联合起来,2 的 10 次方是 1024,当然可以表示 1000 个数字了。

然后我们给每只药水编号,从 0-999。

好了,操作来了

0 二进制表示,是 0000000000 

1 二进制表示,是 0000000001 

2 二进制表示,是 0000000010 

3 二进制表示,是 0000000011

..........

999 二进制表示,是 1111100111

可以看到我把药水编号转成二进制,一共写了 10 位,每一位其实就表示对应一只小白鼠喝不喝这个药水

就是说第 0 个小白鼠,把药水编号第 0 位是 1 的药水都喝一遍。

第 1 个小白鼠,把药水编号第 1 位是 1 的药水都喝一遍。

第 2 个小白鼠,把药水编号第 2 位是 1 的药水都喝一遍。

...

第 9 个小白鼠,把药水编号第 9 位是 1 的药水都喝一遍。

这样设计之后,除了第 0 瓶药水,其它药水都有小白鼠喝了,所以如果没有小白鼠死亡,那么第 0 号药水有毒。

那么,如果有小白鼠死亡该怎么判断?

其实很好理解,假设现在是编号 3 的药水有毒,我们得知编号 3 的二进制是:0000000011

丛上面的规则我们知道,有且仅有第 0 个和第 1 个老鼠喝了编号 3 这个药水,所以如果别的老鼠都没死,只有这两个老鼠死了,那么我们可以断定编号 3 药水是毒药。

所以,我们让对应的老鼠喝对应的药水,然后两小时之后观察哪几只老鼠死亡,我们就可以从死亡的老鼠编号反推出毒药的编号。

假设现在第 0、1、3、5 老鼠死了,那么毒药水编号就是:2^0 + 2^1 + 2^3 + 2^5 = 1 + 2 + 8 + 32 = 43。

好了,解答完毕。(其实这个题干应该再补充下,每支药水量充足,足够每只小白鼠喝一口)

现在想想这个方式是不是有点巧妙?有点拓宽思路的感觉。

最后

这道题看起来好像是智力题,其实给了提示之后就是考察对二进制的掌握程度了。

二进制其实在很多场景都有比较深入的运用,其实就是位域的用法。

我举个距离我们比较近的例子,Java里面的读写锁即ReentrantReadWriteLock

AQS 里面用一个 int 变量 state 来表示锁的占有,那一个变量同时如何表示读锁和写锁呢

int 是 4 个字节,一共 32 位,于是乎李老爷子就把 32 位分为了两部分,高 16 位表示读锁的状态,低 16 位表示写锁的状态。

这就是二进制的一个简单应用,当然还有很多,包括刷算法题的时候,通过位来节省内存开销等等,这里就不多说了。

对了,不知道你们是否在路边遇到过摆摊的算命先生,说让你指着前面几张纸就能知道你的姓氏,其实用的就是二进制!

然后,你们在面试中有遇到什么比较有趣的面试题吗?欢迎留言分享下!

我是yes,从一点点到亿点点,我们下篇见~



微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
FLAG在职面试官硬核分享 | 无项目&弱实习上岸秋招回心转意?马斯克又说要440亿买推特了,法官说案子还没撤结婚的意义:还车贷房贷给孩子当牛做马TMUA考生直呼难到爆?NSAA答不完题正常?今年ENGAA/NSAA/BMAT/TMUA真实难度大盘点!俄军装备,有多少是不能用的垃圾?普京都回答不了总结下最近的面试题吧当场愣住!面试官说,你不是我们目标院校的学生那些比赛杀人的刽子手,终将会迎来正义的审判!格局打开,遇到奇葩面试题可以这样答佛罗里达州首席财务官说,保险计划将遏制风暴过后的欺诈行为火速收藏!2022-23申请季美国大学面试要求汇总!常见面试题型详解!资本是资本家用来剝削打工者的绝了!反向面试经历 | 拿捏面试官全教程 附赠彩蛋巨头杀入的LMFP,是未来正极材料的新归宿?龙卷风健康快递 188野!Penn State德州King上线,被这个Morgan Stanley的面试官秀到了这都行?!列治文俩华人大姐微信上买卖$300万房子!打官司法官说:判不了!驾驶我的车,驶向自我之境英国G5要雅思8才能申到?!曾经你爱答不理的,现在已高攀不起老大遇到的问题,老二又重演了一遍,真希望越早发现越好《投行400问》大更新!今年华尔街的面试题,这份文档全剧透了面试时注意这些细节问题,面试官对你好感度暴增!赶紧的!北脸折扣区秋冬服饰价格太好了!买来正好能穿上!学历是一道门槛,人情世故更是一道门槛!老公彻底失联,真的去当和尚了?哈佛校友揭秘!面试申请最常见的6问,怎么回答不出错?弔!看完IBD港姐分享的这版《投行400问》,我之前都白学了…揭秘肿瘤患者都会遇到的一个问题,常不被重视,严重的还影响生存期我,5天拿下Tableau官方颁发的证书,面试官直接让我下周入职?亿万富豪难忘在高中击败自己的女孩网传华为面试题:800kg的牛如何过承重700kg的桥?你怎样思考问题,就怎样过一生渡十娘|签证官说:等一等,他们是洪堡学者分享一些新知识和生活方式我从来没想过有一天会发这种文章,就像我之前从没想过有一天会直播卖这个……对话式AI落地最难的一道题,在京东云被这些科学家搞定了
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。