微軟面試試題精選--9道!<全文及完整答案> (轉)

worldblog發表於2008-01-05
微軟面試試題精選--9道! (轉)[@more@]

面試試題選

By 阿新(Seraph Chutium)--

==================================================================================================================

這些都是去年看了《員》雜誌後,從以前的試題中找來出給當時的同學們做的。
現在傳上來,看看大家會不會做。目前所有試題都已經做出正確解答,稍後會公佈出來。

------------------------------------------------------------------------------------------------------------------

說明:題號前面的*表示編者認為的試題難度,最高為***(是我沒做出來~);沒有*的表示極簡單。

以下各題均無正確解答,答案都是編者自己想的(最後一題至今未做出),
題後所注正常解題時間均以本人解題時間為參考,
如:30s ~ 2min 意為:本人解題時間在30秒到2分鐘之間。
本人並不認為自己能力超長(或超弱),故定為正常解題時間。


==================================================================================================================

一.階梯測試(最後一題難度較大*很大,前兩題難度相應遞減)

走到一條岔路上,前面遇到兩個人,一個人永遠說真話,一個人永遠說假話,你並不知道誰說真話誰說假話,只許問其中一個人一句話,就知道該往那裡走了。
 (正常解題時間:30s ~ 2min)

三個帶著自己的一個孩子過河,只有一條船,每次只能載兩個單位,當大人不在身邊的時候,如果小孩身邊有別的大人,那他(她)就有危險,
 問:如何能在沒有危險的情況下順利過去。
 注意:船回來的時候至少得有一個單位在上面。
 (正常解題時間:1min ~ 5min)

**③12個球一個天平,現知道只有一個和其它的重量不同,問怎樣稱才能用三次就找到那個球。13個呢?
 (正常解題時間:20min ~ 60min ,本人將近40分鐘做出正確解答)

==================================================================================================================

二.微軟面試題分類精選(部分試題參考《程式設計師》雜誌試刊一。均為本人自己解答,答案稍後公佈)

------------------------------------------------------------------------------------------------------------------

Ⅰ. 微軟試題—基礎理論運用能力

一火車,以15km/h從L.A.開往N.Y.,另一以20km/h從N.Y.開往L.A.;
 一隻鳥從Los以30km/h與兩車同時出發,遇到另一火車後返回,並往復至兩車相遇,求其運動位移及路程。
 (正常解題時間:5min ~ 10min)

------------------------------------------------------------------------------------------------------------------

Ⅱ. 微軟試題—邏輯思維能力

有足量紅黃藍小球放在同一容器中,現需取2個顏色相同的,最少要取幾個。
 (正常解題時間:1s ~ 10s)

足量水,3ml,5ml容器各一,如何測4ml水。
 (正常解題時間:20s~40s)

------------------------------------------------------------------------------------------------------------------

Ⅲ. 微軟試題—知識遷移能力

*④足量水,3ml,5ml容器各一,如何透過它們確定出所有正常數體積的水。(不能用 1 ml 來拼湊)
 (此題是我自編的一道難度較上題稍有提高的聯絡實際題,想想日常生活中哪些是可以確定所有正常數量的。正常解題時間:20s ~ +∞)

------------------------------------------------------------------------------------------------------------------

Ⅳ. 微軟試題—實際生活綜合能力

*⑤4個裝了藥丸的容器,正常藥丸質量一定;其中一容器中全裝的變質藥丸,其質量為正常藥丸質量+1。只稱一次,如何判斷那一容器中藥丸變質。
 (正常解題時間:10s ~ +∞)

***⑥工人為你工作7天,回報為一根金條(既然說是金條,應該就不能將其彎曲吧?),
   必須在每天付給他們一段,且只能截2次,你將如何付費?
  (本人目前未得到正解,解題時間暫定為 +∞) 

======================================================================================================

提示:一.①,② 略;③:太多了,有興趣以後給……

   二.① 略;② 4次;③ 略;

     ④ 有了第三題,這題應該不難,只要你知道,半分鐘的事,如果你不知道,那就永遠也做不出來了。
       想想人民幣面額的設定。

     ⑤ 如果你想到正路了……10秒就夠,如果沒有,永遠不可能算出來。
       從4個容器取不同數量的藥丸,分為兩組進行秤量入手。
       如:在1,2,3,4號容器中分別取1,2,3,4個藥丸。把這10個藥丸放在一起,秤量;透過它們
       重量與標準值的差進行判斷(簡單一例:假設稱得總質量是 10倍標準值+2,則2號為變質藥丸)

     ⑥ 如果金條可以彎折,那自然很好做……可是~~~希望有會做的能夠告訴我,虛心等待賜教。

==================================================================================================================

付費問題解答(本題由張曄同學解答)

將金條分在1/7和3/7初分為1/7、2/7、4/7三段,第一天付給1/7,第二天拿回並付給2/7,依此類推。

------------------------------------------------------------------------------------------------------------------

過河問題解答

  大人,孩子分別為:A a; B b; C c;
  1: A & a 過去,a留,A返
  2: b & c 過去,b留,c返
  3: A & B 過去,B,b留,A,a返
  4: A & C 過去,A,C留,b返
  5: A & a 過去,a留,A返
  6: a & b 過去,a留,b返
  7: a & c 過去,此時已經全部到達對岸上述答案是我做出的,標準答案定不唯一,如哪位有更簡方案望賜教。

------------------------------------------------------------------------------------------------------------------

稱球問題解答及總結

分別為a b c d, e f g h, i j k l,取出abcd, efgh

第一種情形:
如果重量相等,則說明所求在 ijkl 中,
稱量 i j ,
如果相等,比較 a k ,如果a=k,則所求為 l ;如果ak不等,則所求為 k 。
如果不等,比較 a i ,如果a=i,則所求為 j ;如果不等,則所求為 i 。

第二種:
如果 abcd 輕,
在efgh中取出 fgh ,替掉abcd中 bcd,從ijkl中取出 ijk 個放入 e 中填補空位:
如果afgh輕:則說明所求在a或e,拿 e 和除 a 以外的任意一球比較,如果重量相等,則所求的球是 a ;如果不等,則所求的球是 e 。
如果afgh重:說明所求在 fgh 中,且所求較重;比較 f g ,等重則所求為 h ;不等則重的為所求。
如果一樣重:說明所求在 bcd 中,且所求較輕;以下同afgh重的情形。

第三種:
如果 abcd 重,
在efgh中取出 fgh ,替掉abcd中 bcd,從ijkl中取出 ijk 個放入 e 中填補空位:
如果 afgh 重:則說明所求在a或e,拿 e 和除 a 以外的任意一球比較,如果重量相等,則所求的球是 a ;如果不等,則所求的球是 e 。
如果afgh輕:說明所求在 fgh 中,且所求較輕;比較 f g ,等重則所求為 h ;不等則重的為所求。
如果一樣重:說明所求在 bcd 中,且所求較重;以下同afgh輕的情形。

此題答案就是這樣。下面與大家進而探討稱任意球數的通用性。

總結:
  天平稱重,有兩個托盤比較輕重,加上托盤外面,也就是每次稱重有3個結果,就是ln3/ln2位元資訊。n個球要知道其中一個不同的球,如果知道那個不同重量的球是輕還是重,找出來的話那就是n個結果中的一種,就是有ln(n)/ln2位元資訊,如果不知道輕重,找出來就是2n(n個球中的一個,輕或者重,所以是2n)個結果中的一種,那就是ln(2n)/ln2位元資訊。
  假設我們要稱k次,根據資訊理論,那顯然兩種情況就分別有:
  (1)k*ln3/ln2>=ln(n)/ln2 (k>=1) 解得k>=ln(n)/ln3
  (2)k*ln3/ln2>=ln(2n)/ln2 (k>1) 解得k>=ln(2n)/ln3
  這是得到下限,可以很輕易證明滿足條件的最小正整數k就是所求。比如稱3次知道輕重可以從3^3=27個球中找出不同的球出來,如果不知道輕重就只能從(3^3-1)/2=13個球中找出不同的球出來。

------------------------------------------------------------------------------------------------------------------



==================================================================================================================

邱騰·阿新(Seraph Chutium) 編譯 –


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-996525/,如需轉載,請註明出處,否則將追究法律責任。

相關文章