100 瓶水里藏著 1 瓶毒藥,找毒瓶居然不用 100 只老鼠?只用 7 只就能精準(zhǔn)鎖定,這個(gè)經(jīng)典邏輯題不僅燒腦,還藏著普通人能直接用上的思維妙招。
很多人看到題第一反應(yīng)就是堆老鼠,每只對(duì)應(yīng)一瓶水,一周后看哪只死了就能對(duì)應(yīng)找到毒瓶。但這種方法要用到 100 只老鼠,不僅浪費(fèi)資源,也完全不是最優(yōu)解。只用 7 只老鼠就能搞定,核心就藏在二進(jìn)制的邏輯里。
![]()
我們?nèi)粘S玫氖鞘M(jìn)制,滿(mǎn) 10 進(jìn) 1,每個(gè)數(shù)位對(duì)應(yīng) 10 的不同次方。而二進(jìn)制是滿(mǎn) 2 進(jìn) 1,每個(gè)數(shù)位只有 0 和 1 兩種狀態(tài),就像電燈的開(kāi)關(guān),開(kāi)對(duì)應(yīng) 1,關(guān)對(duì)應(yīng) 0。
比如二進(jìn)制數(shù) 1101,從右往左對(duì)應(yīng)的數(shù)位分別是 2?、21、22、23,換算成十進(jìn)制就是 1×8 + 1×4 + 0×2 + 1×1 =13,是不是很好理解?
把 1 到 100 的所有瓶子都轉(zhuǎn)換成二進(jìn)制,會(huì)發(fā)現(xiàn)最大的 100 對(duì)應(yīng)的二進(jìn)制是 7 位數(shù),所以我們只需要把所有編號(hào)都補(bǔ)齊成 7 位二進(jìn)制就行。
我們先給每瓶水按十進(jìn)制編號(hào),再統(tǒng)一轉(zhuǎn)成 7 位二進(jìn)制格式。接下來(lái)給每只老鼠分配對(duì)應(yīng)任務(wù):
![]()
第一只老鼠喝所有二進(jìn)制最右一位(對(duì)應(yīng) 2?位)是 1 的瓶子;第二只喝對(duì)應(yīng) 21 位是 1 的瓶子,以此類(lèi)推,直到第七只老鼠對(duì)應(yīng) 2?位。
一周后看老鼠的存活情況:死了的老鼠對(duì)應(yīng)數(shù)位是 1,沒(méi)死的則是 0。把這些 0 和 1 按從左到右的順序組合起來(lái),就是毒瓶的二進(jìn)制編號(hào),最后轉(zhuǎn)換成十進(jìn)制就是目標(biāo)瓶子的編號(hào)。
舉個(gè)具體例子,如果第一、第三、第四只老鼠死了,對(duì)應(yīng)的二進(jìn)制就是 1101,換算成十進(jìn)制就是 13 號(hào)瓶子,是不是精準(zhǔn)又高效?
再換一個(gè)例子,二進(jìn)制數(shù) 11101 對(duì)應(yīng)的十進(jìn)制是 29,也就是第一、二、三、五只老鼠死亡,對(duì)應(yīng)的就是 29 號(hào)瓶子有毒。
![]()
這種用二進(jìn)制做分組排查的思路,不止能解決找毒瓶的問(wèn)題,日常里的分組測(cè)試、快速排查故障、甚至職場(chǎng)里的任務(wù)分配都能用上。看懂這個(gè)邏輯,下次遇到類(lèi)似的燒腦題,你也能快速找出最優(yōu)解。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.