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