1000桶水中兩桶有毒,豬喝毒水後會在15分鐘內死去,想用乙個小時找到毒水,至少需要幾隻豬?如何實現?

時間 2021-05-06 07:51:23

1樓:重劍

7只豬就夠

方程就是x(x-1)(x-2)(x-3)=1000取最接近1000,但是又<1000的x數值,為7。

具體過程自己可以推演

2樓:何利

說個簡單的思路。第一輪喝水,n只豬每只喝同樣多就是1000/n桶水,必然有乙隻死,剩餘的豬n-1只去檢驗死去的豬喝的1000/n桶水 1000/n/(n-1)……因為要得到至少需要多少只豬,所以按最大死亡時間15分鐘計算,一共只能喝4次。0,15,30,45

1000/n/(n-1)/(n-2)/(n-3) <= (n - 3) + 1 即可,得到n=7 最小值

校驗結果:如果增加1桶沒毒的水,第一次每頭豬喝1001/7=143桶水,1豬死亡,其餘6頭來喝這143桶中有毒的水加1桶無毒水;第二次每頭豬喝144/6=24桶水,1豬死亡,其餘5頭來喝這24桶中有毒的水加1桶無毒水;第三次每頭豬喝25/5=5桶水,1豬死亡;最後一次,剩餘餘4頭來喝這5桶中有毒的水;4只豬每只喝1桶,誰死就哪桶水有毒,不死就是多出來的那桶水有毒。

3樓:周炯

6只豬第一輪桶分成7組如果一頭都沒死就是第七份有毒,一輪過後剩143個桶第二輪,至少剩5只豬,桶分成六組,剩24桶第三輪至少剩4只,桶分五組,剩5桶

第四輪給每個筒編號000 001 010 011 100,剩下的三隻豬對應三個位可以有那種情況,最後輪無論死活都不影響。

理論上6只豬可測試 7x6x5x8 1680種情況

4樓:孫國星

已知豬15分鐘內必死。

我們假設需要n頭豬豬,並且假設有m桶毒水。

首先將1000桶水分成n+m並編號,然後讓這每頭豬都喝這n份內的每一桶水,十五分鐘後找出出現豬豬死亡的那m份,如果沒有,就表明是毒水在多餘的那m份;

假設死了m頭豬豬,這樣就只有n-m頭豬豬,然後再把之前得到有毒水的那些水重新分成n-m+m份,也就是n份,也是讓剩餘的豬豬嘗每份水裡的每一桶水,然後得到有毒水的新的那乙份水;

假設又死了m頭豬豬,這樣就剩下了n-2m頭豬豬,然後再將之前有毒水源的那些水重新分成n-2m+m份,也就是n-m份,也是讓剩餘的豬豬嘗每份水裡的每一桶水,會得到有毒水的新的那乙份水;

假設又又死了一頭豬豬,這時候就剩下了n-3m頭豬豬,因為是最後一段時間,所以之前得到的那份毒水內水的桶數必須小於等於n-3m+m,也就是n-2m,這樣才能保證每一桶水都有一頭豬豬去品嚐,最後就能找到那桶帶有毒的水。

那麼我們要求(n+m)*(n)*(n-m)*(n-2*m)>=1000中n的最小值,其中m已知。

已知這裡我們的m為2,代入公式可知:至少需要8頭。

5樓:zxm

扯出物理學,資訊理論的大神,答案卻沒有讓我看懂。純屬作為數學趣味題解答。

1,猜想這道數學題,我們可以像猜數字一樣對半分成2撥,確認有毒的一桶在哪一撥,需要的豬的數量不會大於10。

2,可以讓豬試毒的時間為了方便我們簡單設定為第0分鐘,第15分鐘,第30分鐘,第45分鐘。

3,假設只需要2頭豬:

第0分鐘,分為3組,A豬把333桶水都試一遍,B豬試另外的333桶,留334誰都不試

第15分鐘,假設A和B都沒死掉了,確定有毒桶在334桶中間。再分為3組,111,111,112。

第30分鐘,假設幸運的情況下,A和B豬還沒有死掉,毒確定在112桶中。

第45分鐘,再分為3組,37,37,38。

第60分鐘,發現不管豬是否死掉了,有毒的桶的範圍只能圈定在38桶之中。

4,直接跳到需要5頭豬。由於保證一定完成,假設每輪都毒死乙隻豬。

第0分鐘,5頭豬把1000桶分為6個小組166,166,167,167,167,167。

第15分鐘,圈定167桶中有一桶有毒,剩下4頭豬,分為5組,33,33,33,34,34。

第30分鐘,圈定有毒的34桶,剩下3頭豬,分為4組,8,8,9,9。

第45分鐘,圈定9桶,剩下2頭豬,分為3組,3,3,3。

第60分鐘,圈定3桶裡面有毒,剩下1頭豬。也沒有完成。

5,假設需要6頭豬:

第0分鐘,6頭豬,把1000分為7組,142,143,143,143,143,143,143。

第15分鐘,5頭豬,鎖定143,分為6組,24,24,24,24,24,25。

第30分鐘,4頭豬,鎖定25,分為5組,5,5,5,5,5。

第45分鐘,鎖定5,剩下3頭豬。每頭豬嘗2桶。

第60分鐘,得出結論。

綜上,在1小時內1000桶確定有毒的一桶。至上需要6頭豬。

再進一步,從結果反推。總共有4輪,假設總共n頭豬,每一輪損失一頭。

所以(n-2) × (n1) × n × (n+1)要求大於等於1000。

6樓:調皮的笨蛋

補充,如果是45分鐘內找到的話。8只豬,45分鐘。8只豬隨意選出其中三隻,共有56種組合。

任選兩隻有26中組合,任選乙隻8種。一共有92種不同組合。把1000桶分成92份,每份約11桶。

15分鐘後如果死了三隻豬,就找那三隻豬都喝過的那份11桶水,也就是56種組合的其中之一,死乙個就找只有那只豬喝過的那乙份。假設1輪後死了三隻豬。確定在這乙份的11桶之中。

剩下五隻分別兩桶。15分鐘後都沒死,就在剩下的那桶裡。如果有豬死了。

再來兩隻豬分別喝下那兩桶水。可得45分鐘,8只。

7樓:藍椒

我認為7頭豬夠用

前15分鐘:一頭豬舔125桶水,一共7頭,剩125桶水不舔。

第二個十五分鐘:(最壞的打算)其中一頭已毒死 ,還剩125桶水和6頭豬,六頭豬舔102桶水,平均一頭17桶,還剩23桶沒人舔

第三個十五分鐘:(最壞的打算)其中一頭已毒死 ,還剩23桶水和5頭豬,一頭豬舔4桶,還剩3桶沒人舔

第四個十五分鐘:(最壞的打算)其中一頭已毒死 ,還剩4頭豬和3桶水

8樓:大山里的人生

@MISS老楊2.1有問題,8頭豬分成兩撥,4頭豬三次測100桶水無法實現(100化為二進位制有7位)

我的答案也是10頭。

第一次分10等份給豬喝:

1.1.死2頭剩8頭。毒藥在兩個100桶AB中:

2.1.AB均分4等份13,4等份12,AB混,給8頭豬吃:

3.1.死1頭剩7頭,在某乙份13中:分為6等分2,再加剩餘1桶,給7頭豬吃:

1.2.死1頭剩9頭。毒藥在某100桶中:

2.2.分8份11,1份12給9頭豬吃:

9樓:我什麼也不懂

7頭豬就可以檢驗出1000桶水中哪一桶有毒。

1.將1000=142+143+143+143+143+143+143 7種組合,死掉1頭,剩6頭,用時15分

2. 143=25+25+25+25+25+18 6種組合,死掉1頭,剩5頭,用時15分

3. 25=5+5+5+5+5 5種組合,死掉1頭,剩4頭,用時15分

4. 4=1+1+1+1 用時15分,檢驗結束。

10樓:無風

首先把問題轉化一下。

1、乙個豬在一小時內可以檢驗的水桶數量為5個:15分鐘死、30分鐘死、45分鐘死、60分鐘死、60分鐘不死;

2、兩個豬在一小時內可以檢驗的水桶個數為5^2=25個圖示a豬b豬3、1000桶水裡有2桶毒水,那麼需要檢驗的點位有 (999+1)*999/2=499500 個;

4、幾個豬在一小時內可以檢驗超過499500 個點位?

即求解5^n>499500,n為正整數

lg49500/lg5≈8.15

則n=9

LS的答案只有乙個很清晰啊那個一句話說夏農的。

11樓:keghost

原來設想用一開始就使用交叉組來實現,但情況太複雜,反而不好處理。

但是在第一輪獲得資訊之後,使用交叉組是可以提高上限的。

@小河流

你的第一種方法是可行的。

7頭3輪檢驗兩組時,每組的上限是可以提高的。

每組可以99,乙個組可以108。

99分成6個9,6個3,1個27;

108分成27+81,27由7號豬試。

6個9各1頭,1-6號豬試;

6個3分別由1和2、2和3、3和4、4和5、5和6、6和1共試。

不死,27x81,7頭2輪可解決。

死1頭的情況:

只死1-6號,9x81,6頭2輪可解決。

只死7號,27x27,6頭2輪可解決。

死2頭的情況:

1-6號死2頭,3x81,5頭2輪可解決。

1-6死1,7死,9x27,5頭2輪可解決。

死3頭的情況:

1-6死2,7死。3x27,4頭2輪可解決。

最多死3頭。

12樓:羅意

9頭。我先看了相關問題(就是只有一桶毒水那個)的高票答案,總結出了:

1. 下限的估算方法:每頭豬能提供一輪死/二輪死/三輪死/四輪死/存活五個可能狀態,因此需要log(5, 桶樣本數)頭豬,在該問題中為5頭,在本問題裡為9頭。

2. 檢測流程:

1. 設有a0頭豬,將桶樣本編號,桶編號編碼為a0位5進製數。每桶編號編碼為0的位對應的豬喝該桶水, 存活a1頭豬,毒水在死去豬對應位為0,其餘位非0的桶中(若a1=0,毒水可確定,下同);

2. 重新編碼嫌疑桶編號為a1位4進製數,繼續讓0位對應豬喝對應水,觀察結果;

3. 重新編碼嫌疑桶編號為a2位3進製數,重複流程;

4. 重新編碼嫌疑桶編號為a3位2進製數,根據結果可定位毒水。

所以該題5頭豬可以檢測3125桶水,這題9頭可檢測1975桶裡的兩桶毒水。

這題有兩桶毒水,可以看成桶樣本數為這兩桶毒水編號的組合,即500 * 999。操作時為每一種組合編號,如果一頭豬該喝(桶1, 桶2)組合和(桶2, 桶3)組合,那麼同時喝桶1,桶2和桶3就好,與上面流程一致。

如果時間改了為n回合(一小時就是4回合),修改初始進製數為n + 1即可。

流程倒推可知這方案是最優的,爪機不贅述。

錯了,組合出來有1999個組合有毒,不是乙個。再想想

13樓:張迪

無毒的狀態是1000桶取998桶的組合,概率P1,而乙隻豬的狀態是5種,概率P2=0.2根據夏農,-logP1/-logP2

14樓:

我有一種用10只豬的方法:

1.給每只豬喂對應個位數編號的水,這樣第乙個15分鐘後肯定最多死兩隻豬。

2.1.如果死了兩隻豬的話,則同時確定了兩個一百桶水裡有一桶水有毒。

問題簡化成一百桶水裡有一桶有毒,試45min確定哪一桶。將剩下八隻豬平均分開,利用映象問題 @Sun AO 提供方法(即用幾進製的四位數至少可以表示到100),分別確定這桶水。因為4*4*4*4>100。

兩步一共需要10只豬。

2.2如果僅死乙隻豬的話,問題變成100桶水裡兩桶有毒,45min確定哪兩桶。利用1思路,給剩下每頭豬喂9餘數的水。

2.2.1若死兩隻豬(此時還剩下7只豬),則問題簡化成12桶水一桶有毒,試30min確定。將剩下豬分成33兩組。因為3*3*3>12。

2.2.2若死乙隻豬(此時還有八隻豬),問題變成12桶水裡一桶有毒,30min確定哪兩桶。利用1思路,給剩下每頭豬喂8餘數的水。

2.2.2.1若死兩隻豬(此時還有六隻豬),問題變成2桶水裡一桶有毒,15min確定哪兩桶。

2.2.2.2若死乙隻豬(此時還有七隻豬),問題變成2桶水裡一桶有毒,15min確定哪三桶。

故而此方法10只是最多的。

PS.這個問題需要找到乙個平衡點:在哪一步確定出剩下的水裡面肯定有且僅有一桶有毒。因為確定一桶水的位置的速度是冪數級的,而將水分開的速度是階乘級的,所以越早分開越好。

顯然每次死兩隻豬的過程是最浪費的。所以上限應該取決於此過程。

如果是九隻豬的話,剩下2個112桶水被確定有且僅有一桶毒水。將豬按3只和4只分開。但3只豬最多只能表示3*3*3*3=81只。

基此方法可以一勞永逸地解決n桶水裡有k桶有毒,t時間內確定出來,至少需要l只豬的問題。

不過根據理論計算:1000桶水裡兩桶有毒一共有499500個狀態。而每只豬乙個小時內共有5個狀態(15 30 45 60min內死和不死),l只豬一共就有5^l個狀態。

即5^l>499500。l>8.15。

也就是說有種方法可以只用九隻豬。這種方法是基於將水兩兩組合,給每個組合編號,然後用5位l進製數去表示這些組合。

但是我覺得這個理論值偏低,因為對於豬而言分不清究竟是一桶水毒死自己還是兩桶?所以1000桶水兩兩混合之後,有毒的組合有1999種。問題轉化為499500桶水裡有1999桶有毒,試一小時確定,使得問題反而複雜了。

1000桶水中2桶有毒,大豬喝毒水後會在15分鐘內死去,小豬為10分鐘,至少需要幾隻豬?

我覺得,可以參考 韓信點兵 的問題,利用餘數來縮小範圍。我們用1 1000的整數,對所有的桶進行編號,先只考慮大豬,步驟如下 從所有編號能整除8的桶內,各取0.1mL,混合後給1號豬喝 若1號豬活不過 9min,則可知2桶毒水的編號都是 8 的倍數 若能活過 9min,但活不過15min,則只有1桶...

小加油站的劣質油和兩桶油的優質油混合會怎麼樣?

為了避免不必要麻煩,匿下。本人中石油成品油銷售從業人員。首先,作為中石油銷售員工,要強調下,小加油站並不等於劣質油,我們一定要尊重競爭對手。除了兩桶油外,中海油 中化 延長石油 道達爾 BP以及眾多經營山東知名地煉油品的加油站,成品油質量基本是可靠過關的。不排除一些規模小 裝置設施簡陋的加油站經銷劣...

男票從家裡帶回來兩桶準婆婆親手給榨的油,要送給我爹媽,說是自己榨的最健康了,這是真的麼?

看完了知乎的答案默默的對男朋友送的自家榨的兩壺胡麻油產生了懷疑。說起來送油的主意是我幫我男票想出來的,因為我父母特別吃手工榨油這一套 他們都是從農村出來的 所以看到兩壺油的時候二老非常開心 還夾雜有別的禮物 但是我看到了前面答案有的提到自家榨的油裡面有黃麴黴菌和各種雜質,有的說自家榨的油並沒有安全問...