試毒水 阿里巴巴騰訊搜狐筆試智力題

2021-10-02 15:27:50 字數 1067 閱讀 9376

問題描述:

例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只

分析:每個老鼠有死活兩種狀態分別為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只

總結:有m種狀態,則選n只小白鼠。此時:m<2^n

有m瓶水,1瓶有毒,選n只小白鼠可以在規定時間內檢測出哪一瓶水有毒。直接用技巧m<2^n

像例1情況,有16瓶水,要求在規定時間內檢測出14瓶無毒的。可以兩瓶水分一組共8組。

問題轉換為:一共有8種狀態,檢測出哪一組檢測出有毒,則剩餘的組無毒。此時m=8,所以選3只小白鼠2^3=8

阿里巴巴筆試題

1 有乙個虛擬儲存系統,若程序在記憶體中佔3頁 開始時記憶體為空 若採用先進先出 fifo 頁面淘汰演算法,當執行如下訪問頁號序列後1,2,3,4,5,1,2,5,1,2,3,4,5,會發生多少缺頁?a 7 b 8 c 9d 10 2 設有乙個順序棧s,元素s1 s2 s3 s4 s5 s6依次進棧...

阿里巴巴筆試題

題意 給定一串數字 判斷是否存在這三個元素,它們將數字串分為四個子串,其中每個子串的數字之和均相同 該3個元素不納入計算 要求時間複雜度和空間複雜度均不能超過o n 思路 奇妙的利用了單調性,列舉第一段的和,第一段的和確定了,那麼接下來的2,3,4段的和就都確定了,什麼單調性呢?就是i右移,j,k都...

阿里巴巴筆試題

1 有乙個虛擬儲存系統,若程序在記憶體中佔3頁 開始時記憶體為空 若採用先進先出 fifo 頁面淘汰演算法,當執行如下訪問頁號序列後1,2,3,4,5,1,2,5,1,2,3,4,5,會發生多少缺頁?a 7 b 8 c 9d 10 2 設有乙個順序棧s,元素s1 s2 s3 s4 s5 s6依次進棧...