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