主題

【數學】千中選一

愛天使亞夜 | 2021-05-08 19:46:24 | 巴幣 40 | 人氣 140

大家好這裡是亞夜。

最近忽然看到了一則數學題:
有1000個瓶子,
其中999個瓶子裝的是水而只有1個瓶子裝的是毒藥,
而這毒藥的外觀跟氣味等跟水沒有分別,
但只要嚐到一滴就會致命。
這裡有10隻老鼠以及無限多個試管,
你該如何用這10隻老鼠來找出毒藥在哪?

這一題的解答其實還挺簡單的,
就一瓶一瓶試,
抓一隻老鼠唉個瓶子喝,
喝到某一瓶它死了,
那那瓶就是毒藥。

當然,
這種作法顯然不需要用到那麼多試管跟老鼠,
所以我們現在加個限制:每個老鼠只會喝一次。

那麼這個題目就變得有趣了。
直覺很簡單,
有無限多個試管,
那就先拿其中500瓶各滴一滴到一個試管內混合,
這樣這試管給老鼠喝一口,
不論老鼠死不死,
都能確定其中500瓶是安全的。
(活=抽的500瓶是安全的;死=沒抽的500瓶是安全的)

接著把安全的瓶子貼上標籤後移除,
從剩餘的瓶子中再取250瓶滴一滴到一個試管裡混合,
然後抓第二隻老鼠來喝一口,
於是就能確信250瓶是安全的,
而毒藥只會在剩下的那250瓶裡面。

接著第三隻老鼠喝完樣本剩下125;
第四隻老鼠喝完樣本剩下63或62;
第五隻老鼠喝完樣本剩下31或32;
第六隻老鼠喝完樣本剩下15或16;
第七隻老鼠喝完樣本剩下7或8;
第八隻老鼠喝完樣本剩下3或4;
第九隻老鼠喝完樣本剩下1或2;
因此第十隻老鼠喝完肯定能確定毒藥的位置。

這思路很簡單。
2的10次方式1024,
非常接近1000。
既然老鼠喝了後非死即活,
那麼就相當於二分法做十次即可。

那麼,
現在加上一個條件:
毒藥要在體內一天才會發作,
你沒有多少時間可以執行這個任務,
因此你必須以一次實驗的結果就找到毒藥。

換句話說,
上述方法必須藉由老鼠的死活來判斷毒藥在哪一組裡面,
既然老鼠喝到毒藥得等一天才發作,
那就沒辦法用上面的方法進行,
而必須換個思路。

剛剛提到了,
如果把瓶子分組,
那把老鼠試毒的過程就相當於一個二分法。
那我們就可以用這個概念:
把活老鼠當0而死老鼠當1,
然後利用老鼠的死活來判斷一組二進位的數字。

具體操作方式如下:
假設8個瓶子裡有1瓶毒藥,
那就把8個瓶子編號為0~7。
準備3個試管,
藉由以下方式調配藥劑:
0=000=不滴入所有試管裡。
1=001=只滴入A試管。
2=010=只滴入B試管。
3=011=只滴入A、B試管。
4=100=只滴入C試管。
5=101=只滴入A、C試管。
6=110=只滴入B、C試管。
7=111=所有試管都滴入。

接著讓3隻老鼠分別喝3個試管的藥劑,
那就會有8種情況:
沒有老鼠死掉=所有3個試管都不含毒藥=0號瓶是毒藥。
只有A老鼠死掉=只有A試管含有毒藥=1號瓶是毒藥。
為什麼能確定呢?
因為A試管裡只包含1、3、5、7號瓶的液體,
但3、5、7號瓶同時有滴入B或C試管裡,
因此如果3、5、7號瓶才是毒藥的話,
那麼必然會導致B或C老鼠一起死掉,
因此我們可以確信1號瓶才是毒藥。
同理:
只有B老鼠死掉=只有B試管含有毒藥=2號瓶是毒藥。
只有C老鼠死掉=只有C試管含有毒藥=4號瓶是毒藥。
以上就包含了4種情況。
剩下的情況呢?
例如A、B老鼠一起死掉的話,
那就是3號瓶是毒藥。
為什麼呢?
A試管只包含1、3、5、7號瓶,
B試管只包含2、3、6、7號瓶。
因為毒藥只有1瓶,
而毒藥又同時存在於A、B試管中,
那麼必然毒藥就是A、B試管的共同成分,
也就是3跟7號。
但如果是7號瓶,
7號瓶因為也滴進了C試管,
因此C老鼠也必然會死。
而C老鼠沒死,
所以只能是3號瓶了。
同理:
A、C老鼠一起死掉的話就是5號瓶;
B、C老鼠一起死掉的話就是6號瓶;
全部老鼠一起死掉的話就是7號瓶。

總結:
0=000=不滴入所有試管裡=沒有老鼠死
1=001=只滴入A試管=只有A死
2=010=只滴入B試管=只有B死
3=011=只滴入A、B試管=A、B一起死
4=100=只滴入C試管=只有C死
5=101=只滴入A、C試管=A、C一起死
6=110=只滴入B、C試管=B、C一起死
7=111=所有試管都滴入=全死

看見了什麼呢?
我們把編號轉寫成二進制,
然後死掉的老鼠當1,
活著的老鼠當0,
藉此我們就能跟據老鼠的死活來得到一組二進位的數字,
接著就能藉由這個數字來確定毒藥的位置。
由於2的10次方=1024>1000,
我們當然就能夠以10個二進位的位數來表示0~999這1000個數字。
因此使用這個方式,
只要等到明天再觀看十隻老鼠的死活那就OK了。


 
封面圖片:pixiv id = 89569778

































那有沒有可以不用等,
不用操作又能立竿見影的方法呢?
有啦,
那就是……
隨便把一隻老鼠抓起來打死,
然後隨便把一瓶液體倒掉,
並且對外宣稱毒藥已經處理掉了。
如果毒藥真的被處理掉那就謝天謝地,
如果毒藥沒真的被處理掉而哪天有人不小心碰到毒藥死了,
就說毒藥是那個人帶進實驗室企圖汙衊栽贓的就好了。
送禮物贊助創作者 !
0
留言

創作回應

愛德莉雅.萊茵斯提爾
天竺鼠車車好可愛w
2021-05-08 20:21:57
愛天使亞夜
馬鈴薯車車可愛(?)
2021-05-08 22:17:41
oVo巴爾坦星人
....
2021-05-09 05:49:04
愛天使亞夜
OxO
2021-05-09 07:31:09
キョん
第三命題有沒有前面的條件?
「現在加上一個條件」很像是前面條件 + 後面。
2021-05-10 04:32:14
愛天使亞夜
有的,但其實不影響。因為取出的液體是放在同一個試管裡讓老鼠喝的,因此老鼠喝一次就夠了。
2021-05-10 06:31:45

更多創作