关于1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?的问题
這是個概率學問題,在計算機中也是個進制問題,我看了網上一些關于這個問題的解答,感覺有的人說的并不清楚,或者感覺有的寫解答的人自己都沒太搞清楚,回答也不對,只是因為知道答案是5硬往上套.這個問題,首先判斷用的是多少進制,這個根據豬在一小時內能有幾種狀態:
一.0分鐘喝水,15分鐘死去
二.15分鐘活著再喝水,30分鐘死去
三.30分鐘活著再喝水,45分鐘死去
四.45分鐘活著再喝水,60分鐘死去
五.60分鐘還活著
有這五種狀態,那么可以判斷求解要用五進制,為什么用五進制,因為用五進制可以保證在1個小時結束后,一頭豬至少能把一個五進制位置的數字的所有可能都判斷掉(0,1,2,3,4),所以每一頭豬它代表的不是豬,一個五進制的數字!
所以,至少需要幾頭豬?
那我們選的豬的數量,至少要保證這個位數的五進制數>1000!如果是4頭豬,那么就代表能判定最多4位五進制,最大的4444轉成十進制=624,所以答案是五頭豬,因為五位五進制,最大的44444的五進制數,轉成十進制是3124!
具體操作:我們把這1000頭豬編號,按五進制編號,這樣有1000個五進制數字.為了方便我們把豬編號1 2 3 4 5,代表五位五進制的五個位數,即某個X X X X X
0-15分鐘,我們讓1號喝1位都是0的桶的水,但是其他位數不能為0,比如10 ,110,3220...這種,讓2號豬喝2號位置為0,其他位置不為0的桶的水....五號豬喝五號位0,其他位置不為0的水.(注意:我們這時并沒有把所有的桶的水都喝完,也就是15分鐘過去也可能沒有豬死去!)
15-30分鐘,假如有豬死去,比如一號豬死了,那么能確定這個五進制數的一號位是0,那么其余四頭豬再喝水的時候,二號豬就喝2號位是1,1號位是零!其余位置不為1也不為0的水(因為345號位置的帶零的數字都已經測過了),三號豬就喝3號位是1,1號位是0,其余位置不為1也不為0的水.4,5號豬以此類推.
假如沒有豬死,那一號就喝一號位為1的其余位置不為1也不為0的水,二號位喝二號位為1,其余位置不為1也不為0的水,以此類推
30-45分鐘? .....
一個小時后,我們就能確定這個五位數的五進制數五個位置的所有數字是多少了
?
總結
以上是生活随笔為你收集整理的关于1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB2021下载安装图文教程
- 下一篇: linux 脚本 写更新,用Shell写