面试题——二进制相关(最小白鼠试毒问题)
面試題——二進制相關(guān)(最小白鼠試毒問題)
- 題目
- 解題思路
- 總結(jié)
- 💢💢版權(quán)聲明
題目
有 1000 瓶藥物,但是其中有一瓶是有毒的,老鼠只要服用任意量有毒藥水就會在一個星期內(nèi)死掉!
請問,在一個星期后找出有毒的藥物,最少需要多少只小白鼠?
解題思路
巧妙的運用了二進制。
💡1.可以先給1000個有藥瓶子編號
0000000001 第1瓶
0000000010 第2瓶
0000000011 第3瓶
0000000100 第4瓶
,,,,,
1111101000 第1000瓶
💡2.然后需要找10個空瓶子,編號10-1,在所有有藥的瓶子里找到所有最右邊第一位為1的瓶子里取一滴放到編號為1的空瓶子里,
在所有有藥的瓶子里找到所有最右邊第二位為1的瓶子里取一滴放到編號為2的空瓶子里,
,,,,,
在所有有藥的瓶子里找到所有最右邊第十位為1的瓶子里取一滴放到編號為10的空瓶子里。
💡3.混合好的10瓶藥分別給10只老鼠喂下,最后檢查,死的老鼠為1,不死的為0,重新組合成一個二進制數(shù),然后轉(zhuǎn)換成十進制,就是那一瓶有毒的藥。
💡4.如果編號為1的老鼠死了,則毒藥的編號的最右邊第一位為1,如果編號為1的老鼠沒有死,則證明沒有喝到毒藥,則毒藥的編號的最右邊第一位為0,因為只有最右邊第一位為1的瓶子才會加到編號為1的瓶子,依次推一下,就可以得到一個二進制數(shù),轉(zhuǎn)換成十進制,就是有毒的那一瓶。
總結(jié)
歡迎大佬多多來給萌新指正,歡迎大家來共同探討。
如果各位看官覺得文章有點點幫助,跪求各位給點個“一鍵三連”,謝啦~
聲明:本博文章若非特殊注明皆為原創(chuàng)原文鏈接
https://blog.csdn.net/Wrinkle2017/article/details/121636775
————————————————————————————————
💢💢版權(quán)聲明
版權(quán)聲明:本博客為非營利性個人原創(chuàng)
所刊登的所有作品的著作權(quán)均為本人所擁有
本人保留所有法定權(quán)利,違者必究!
對于需要復(fù)制、轉(zhuǎn)載、鏈接和傳播博客文章或內(nèi)容的
請及時和本博主進行聯(lián)系
對于經(jīng)本博主明確授權(quán)和許可使用文章及內(nèi)容的
使用時請注明文章或內(nèi)容出處并注明網(wǎng)址
轉(zhuǎn)載請附上原文出處鏈接及本聲明
總結(jié)
以上是生活随笔為你收集整理的面试题——二进制相关(最小白鼠试毒问题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前台登录账号改变时迅速清空记录的登录密码
- 下一篇: java两个数之间质数求法,求任意两个整