- 相關(guān)推薦
程序員面試智力題(2)
14、你在一幢100層大樓下,有21根電線線頭標有數(shù)字1..21。這些電線一直延伸到大樓樓頂,樓頂?shù)木頭處標有字母A..U。你不知道下面的數(shù)字和上面的字母的對應(yīng)關(guān)系。你有一個電池,一個燈泡,和許多很短的電線。如何只上下樓一次就能確定電線線頭的對應(yīng)關(guān)系?
答案:在下面把2,3連在一起,把4到6全連在一起,把7到10全連在一起,等等,這樣你就把電線分成了6個“等價類”,大小分別為1, 2, 3, 4, 5, 6。然后到樓頂,測出哪根線和其它所有電線都不相連,哪些線和另外一根相連,哪些線和另外兩根相連,等等,從而確定出字母A..U各屬于哪個等價類,F(xiàn)在,把每個等價類中的第一個字母連在一起,形成一個大小為6的新等價類;再把后5個等價類中的第二個字母連在一起,形成一個大小為5的新等價類;以此類推;氐綐窍,把新的等價類區(qū)別出來。這樣,你就知道了每個數(shù)字對應(yīng)了哪一個原等價類的第幾個字母,從而解決問題。
15、某種藥方要求非常嚴格,你每天需要同時服用A、B兩種藥片各一顆,不能多也不能少。這種藥非常貴,你不希望有任何一點的浪費。一天,你打開裝藥片A的藥瓶,倒出一粒藥片放在手心;然后打開另一個藥瓶,但不小心倒出了兩粒藥片。現(xiàn)在,你手心上有一顆藥片A,兩顆藥片B,并且你無法區(qū)別哪個是A,哪個是B。你如何才能嚴格遵循藥方服用藥片,并且不能有任何的浪費?
答案:把手上的三片藥各自切成兩半,分成兩堆擺放。再取出一粒藥片A,也把它切成兩半,然后在每一堆里加上半片的A,F(xiàn)在,每一堆藥片恰好包含兩個半片的A和兩個半片的B。一天服用其中一堆即可。
16、 你在一個飛船上,飛船上的計算機有n個處理器。突然,飛船受到外星激光武器的攻擊,一些處理器被損壞了。你知道有超過一半的處理器仍然是好的。你可以向一個處理器詢問另一個處理器是好的還是壞的。一個好的處理器總是說真話,一個壞的處理器總是說假話。用n-2次詢問找出一個好的處理器。
答案:給處理器從1到n標號。用符號a->b表示向標號為a的處理器詢問處理器b是不是好的。首先問1->2,如果1說不是,就把他們倆都去掉(去掉了一個好的和一個壞的,則剩下的處理器中好的仍然過半),然后從3->4開始繼續(xù)發(fā)問。如果1說2是好的,就繼續(xù)問2->3,3->4,……直到某一次j說j+1是壞的,把j和j+1去掉,然后問j-1 -> j+2;或者從j+2 -> j+3開始發(fā)問,如果前面已經(jīng)沒有j-1了(之前已經(jīng)被去掉過了)。注意到你始終維護著這樣一個“鏈”,前面的每一個處理器都說后面那個是好的。這條鏈里的所有處理器要么都是好的,要么都是壞的。當這條鏈越來越長,剩下的處理器越來越少時,總有一個時候這條鏈超過了剩下的處理器的一半,此時可以肯定這條鏈里的所有處理器都是好的。或者,越來越多的處理器都被去掉了,鏈的長度依舊為0,而最后只剩下一個或兩個處理器沒被問過,那他們一定就是好的了。另外注意到,第一個處理器的好壞從來沒被問過,仔細想想你會發(fā)現(xiàn)最后一個處理器的好壞也不可能被問到(一旦鏈長超過剩余處理器的一半,或者最后沒被去掉的就只剩這一個了時,你就不問了),因此詢問次數(shù)不會超過n-2。
17、一個圓盤被涂上了黑白二色,兩種顏色各占一個半圓。圓盤以一個未知的速度、按一個未知的方向旋轉(zhuǎn)。你有一種特殊的相機可以讓你即時觀察到圓上的一個點的顏色。你需要多少個相機才能確定圓盤旋轉(zhuǎn)的方向?
答案:你可以把兩個相機放在圓盤上相近的兩點,然后觀察哪個點先變色。事實上,只需要一個相機就夠了。控制相機繞圓盤中心順時針移動,觀察顏色多久變一次;然后讓相機以相同的速度逆時針繞著圓盤中心移動,再次觀察變色的頻率?梢詳喽,變色頻率較慢的那一次,相機的轉(zhuǎn)動方向是和圓盤相同的。
18、有25匹馬,速度都不同,但每匹馬的速度都是定值,F(xiàn)在只有5條賽道,無法計時,即每賽一場最多只能知道5匹馬的相對快慢。問最少賽幾場可以找出25匹馬中速度最快的前3名?(百度2008年面試題)
每匹馬都至少要有一次參賽的機會,所以25匹馬分成5組,一開始的這5場比賽是免不了的。接下來要找冠軍也很容易,每一組的冠軍在一起賽一場就行了(第6場)。最后就是要找第2和第3名。我們按照第6場比賽中得到的名次依次把它們在前5場比賽中所在的組命名為A、B、C、D、E。即:A組的冠軍是第6場的第1名,B組的冠軍是第6場的第2名……每一組的5匹馬按照他們已經(jīng)賽出的成績從快到慢編號:
A組:1,2,3,4,5
B組:1,2,3,4,5
C組:1,2,3,4,5
D組:1,2,3,4,5
E組:1,2,3,4,5
從現(xiàn)在所得到的信息,我們可以知道哪些馬已經(jīng)被排除在3名以外。只要已經(jīng)能確定有3匹或3匹以上的馬比這匹馬快,那么它就已經(jīng)被淘汰了?梢钥吹,只有上表中粗體藍色的那5匹馬才有可能為2、3名的。即:A組的2、3名;B組的1、2名,C組的第1名。取這5匹馬進行第7場比賽,第7場比賽的前兩名就是25匹馬中的2、3名。故一共最少要賽7場。
這道題有一些變體,比如64匹馬找前4名。方法是一樣的,在得出第1名以后尋找后3名的候選競爭者就可以了。
19、IBM筆試題:一普查員問一女人,“你有多少個孩子,他們多少歲?”
女人回答:“我有三個孩子,他們的歲數(shù)相乘是36,歲數(shù)相加就等于旁邊屋的門牌號碼!捌詹閱T立刻走到旁邊屋,看了一看,回來說:“我還需要多少資料。”女人回答:“我現(xiàn)在很忙,我最大的孩子正在樓上睡覺。”普查員說:”謝謝,我己知道了。”
問題:那三個孩子的歲數(shù)是多少。
36 = 1 × 2 × 2 × 3 × 3
所有的可能為
1,1,36;sum = 38
1,2,18;sum = 21
1,3,12;sum = 16
1,4,9;sum = 14
1,6,6;sum = 13
2,2,9;sum = 13
2,3,6;sum = 11
3,3,4;sum = 10
由于普查員知道了年齡和之后還是不能確定每個孩子的年齡,所以可能性為
1,6,6;sum = 13
2,2,9;sum = 13
由于最大(暗含只有一個最大)的孩子在睡覺,所以只可能是
2,2,9;sum = 13
20、有7克、2克砝碼各一個,天平一只,如何只用這些物品三次將140克的鹽分成50、90克各一份?
答:第一步:把140克鹽分成兩等份,每份70克。
第二步:把天平一邊放上2+7克砝碼,另一邊放鹽,這樣就得到9克和61克分開的鹽。
第三步:將9克鹽和2克砝碼放在天平一邊,另一邊放鹽,這樣就得到11克和50克。于是50和90就分開了。
21、有三筐水果,一筐裝的全是蘋果,第二筐裝的全是橘子,第三筐是橘子與蘋果混在一起。筐上的標簽都是騙人的,(比如,如果標簽寫的是橘子,那么可以肯定筐里不會只有橘子,可能還有蘋果)你的任務(wù)是拿出其中一筐,從里面只拿一只水果,然后正確寫出三筐水果的標簽。
答:從貼有蘋果和橘子標簽的筐中拿出一個水果,如果是蘋果,說明這個筐中全是蘋果,那么貼蘋果標簽的筐里裝的全是桔子,則貼有桔子標簽的筐中裝的蘋果和桔子;如果拿出的一個水果是桔子,說明這個筐中全是桔子,那么貼桔子標簽的筐里裝的全是蘋果,貼蘋果標簽的筐里裝的是蘋果和桔子。
22、題目如下:
0 1 2 3 4 5 6 7 8 9
_ _ _ _ _ _ _ _ _ _
在橫線上填寫數(shù)字,使之符合要求。
要求如下:對應(yīng)的數(shù)字下填入的數(shù),代表上面的數(shù)在下面出現(xiàn)的次數(shù),比如3下面是1,代表3要在下面出現(xiàn)一次。
正確答案是:0 1 2 3 4 5 6 7 8 9
6 2 1 0 0 0 1 0 0 0
http://www.dameics.com/【程序員面試智力題(2)】相關(guān)文章:
程序員面試技巧09-17
程序員的面試技巧10-14
電腦程序員職務(wù)英語面試句子10-04
公司面試技巧(2)10-13
網(wǎng)易面試技巧(2)07-25
電腦程序員面試英語句子06-21
英文面試技巧(2)08-30
“小升初”面試技巧(2)09-10