试毒水(阿里巴巴腾讯搜狐笔试智力题)
問題描述:
例1:(阿里巴巴)有16瓶水,其中有一瓶有毒,小白鼠喝一滴水之后一個小時會死,請問至少用幾只小白鼠,在1小時內一定可以找出至少14瓶無毒的水?
分析:將16瓶水分別標號為1~16,2瓶為一組,分為8組。A1為第1,2瓶水以此類推,A8為第15,16瓶水。
??????小白鼠1喝:A1, A4, A5, A7
??????小白鼠2喝:A2, A4, A6, A7
??????小白鼠3喝:A3, A5, A6, A7
1小時后~
??????小白鼠1死:??????A1組有毒
??????小白鼠2死:??????A2組有毒
??????小白鼠3死:??????A3組有毒
??????小白鼠1,2死:??? ?A4組有毒
??????小白鼠2,3死:???? A6組有毒
??????小白鼠1,3死:??? ?A5組有毒
??????小白鼠1,2,3死:? A7組有毒
??????都沒死:???????? ?? A8組有毒
答案:3只
?
例2:(騰訊)有1000瓶水,其中有一瓶有毒,小白鼠只要嘗一滴24小時后就會死亡,至少需要多少只小白鼠才能在24小時內鑒別出那瓶水有毒?
分析:每個老鼠有死活兩種狀態分別為1,0。因此N個老鼠可以表達2^N種狀態。
假設:有4瓶水A,B,C,D,1瓶有毒,設N=2,可以表達4種狀態:
??????1號老鼠喝A,B;2號老鼠喝B,C
24小時后~
??????00:1號老鼠活,2號老鼠活。D有毒
??????01:1號老鼠活,2號老鼠死。C有毒
??????10:1號老鼠死,2號老鼠活。A有毒
??????11:1,2號老鼠死。B有毒
同理:有1000瓶水,2^10=1024,N=10所以選10個小白鼠,一共可以表示1024個狀態。
答案:10只
?
例3.(搜狐)8瓶酒有1瓶有毒,用人測試,每次測試結果8小時后才會得出,而你只有8個小時時間,問最少需要多少個人測試?
分析:M=8,所以N=3
答案:3個人
?
總結:有M種狀態,則選N只小白鼠。此時:M<2^N
?????有M瓶水,1瓶有毒,選N只小白鼠可以在規定時間內檢測出哪一瓶水有毒。直接用技巧M<2^N
?????像例1情況,有16瓶水,要求在規定時間內檢測出14瓶無毒的。可以兩瓶水分一組共8組。
?????問題轉換為:一共有8種狀態,檢測出哪一組檢測出有毒,則剩余的組無毒。此時M=8,所以選3只小白鼠2^3=8
總結
以上是生活随笔為你收集整理的试毒水(阿里巴巴腾讯搜狐笔试智力题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux是只读添加 来覆盖,Linux
- 下一篇: linux df命令功能,Linux d