我面試遇到的智力題

weixin_33890526發表於2017-04-23

有點不甘心啊。

 前些天做了一次線上筆試題,結果被刷了。沒想到它會全考 C 語言的題目,沒複習到。之前看了有點久了,好多錯了也怨不得人,但是最後的智力題讓人有點氣,是真的束手無策。所以今天上網查了下常見的題目,可以有個總結。( 總結不出來的話,就當是題目收集了,總會重複考到吧 )

先是我遇到過的問題吧。

1.有20個藥瓶,其中19瓶中裝的藥為1g/粒,1瓶中裝的藥為1.1g/粒,問只用一次精準天平,如何知道哪瓶藥中裝的是1.1g/粒的?

曾經遇到過只告訴你有一瓶重一點,問你稱幾次可以找到這瓶,比較簡單,分三堆稱最快。但是這裡給了具體的重量,明顯是可以計算的,但是筆試時候腦子一下子沒有轉過來,事後查了一下才發現答案簡單得令人髮指。只需要給20瓶標號,每瓶取出編號粒藥片,進行稱重。

正常情況下,重量應為 m = 1 * (1+2+...+20) g。

設實際稱得的重量 M g,可得偏重藥瓶為第 (M-m)/1.1 瓶。

2.馬場有 25 匹馬,馬場一次只能進行 5 匹馬的比賽,問在沒有計時工具,只通過比賽方法比較的情況下,最快比多少場可以得到跑的最快的 5 匹馬?

答案我是不記得了,一般的演算法如下:

1)分成5組A,B,C,D,E 比五場。根據每場結果給這五組從快到慢排序。

2)每組的頭名再賽一場,取走第一名,然後該組第二名頂上。

3)重複第二步,直到選出前5名。

按照上面的演算法應該是需要比較十次,但是實際上仔細比較還是可以更少的。

前六次比完後,可得到下面的順序( 假設 A1 > B1 > C1 > D1 > E1 ):

A組 A1 A2 A3 A4 A5

B組 B1 B2 B3 B4 B5

C組 C1 C2 C3 C4 C5

D組 D1 D2 D3 D4 D5

E組 E1 E2 E3 E4 E5

那麼因為只取前五,所以可以排除一部分馬匹(刪除線),第二第三名只可能在 A2、A3、B1、B2、C1中出現,之後再按相同方法角逐第四第五,所以是八場。

A組 A1 A2 A3 A4 A5

B組 B1 B2 B3 B4 B5

C組 C1 C2 C3 C4 C5

D組 D1 D2 D3 D4 D5

E組 E1 E2 E3 E4 E5

3.把三個書架分給5個人,前三個人每人拿了一個書架,各拿出100元,分給剩下的兩個人,請問每個書架多少錢。

這個問題其實只要知道前三人每人拿出100元平分給剩下的人後,每個人實際拿到的物品價值應該是相等的,就很容易解決。

4.分錢的問題,問 C 一共有兩千塊讓A和B分,分法如下: A 先決定分法,若B不同意,則 C 取回當前百分之六十的金額,由 B 決定分法,讓 A 決定是否同意,若不同意,則 C 繼續取出百分之六十並將剩下的錢交由另一方分,知道雙方都同意為止,問在這樣的分法下,A 最多能拿到多少錢。

這個問題的關鍵在於,錢肯定是越分越少的,所以要想辦法讓 B 在第一輪就同意,那麼就是要保證 A 在第一輪給B的錢要高於 B 在第二輪的收益。

假設第一輪 B 不同意 A 的分法,則到B手中有 800 元可分配,為了讓 A 同意,B需要分給 A 多於320 元( 320 為不同意分法後 A 可分配的錢 ),也就是說,B 最多得 480 元,那麼在第一輪,A 只要給 B 481元就可以獲得最多。


這次遇到的題目,題目不多不難,但是在有限時間考慮起來確實也花功夫,這樣胡亂寫一通多少長點記性,盼著下次遇到類似的題目也能頭緒。以上




相關文章