2012年6月19日 星期二

蘋果8大筆試題及答案

蘋果公司在招聘員工時,會向求職者問一些“可汗學院”(Khan Academy)提出的考驗智商的謎題。

你可能沒聽說過“可汗學院”,但“可汗學院”的謎題被蘋果採用一定是有其道理的。可汗學院由孟加拉裔美國人薩爾曼•可汗(Salman Kahan)創立,是一家由谷歌和比爾&梅琳達•蓋茨基金會背後支持的教育性非營利組織,主旨在於利用網絡影片進行免費授課,目前已經有關於數學、歷史、金融、物理、化學、生物、天文學等科目的內容。

蘋果在面試過程中隨時都有可能向求職者拋出這些考驗智商與邏輯的問題,因此如果你嚮往進入蘋果工作,這些艱澀的問題在面試前必須謹慎對待仔細研究,因為蘋果的原則是——不能出錯,哪怕你已經級別很高,是衝著蘋果的高級軟件工程師職位而來也不例外。

幸運的是,這些問題雖然刁鑽,但卻都有唯一的答案,所以你只要有備而來,還是可以應對自如的,下面是8個蘋果面試過程中求職者可能遇到的問題,以及已經被各路聰明的求職者破解的答案。

問題一:

“你面前有兩扇門,其中一扇門內藏著寶藏,但如果你不小心闖入另一扇門,只能痛苦地慢慢死掉……”
這一听就是那種經典的最令人頭痛的一類問題,但其實與其他問題相比,這只是個熱身。在這兩扇門後面,有兩個人,這兩個人都知道哪扇門後有寶藏,哪扇門擅闖者死,而這兩個人呢,一個人只說真話,一個人只說假話。

誰說真話誰說假話?那就要看你有沒有智慧自己找出來了,遊戲規則是,你只能問這兩個人每人一個問題。
那麼,你問什麼問題?問哪個人?根據他們的回答,你又該怎麼做?
求職者的最佳答案:

隨便問其中一個人:“如果我問另一個人,他會跟我說哪扇門後是寶藏?

如果你問的恰好是講真話的那個人,那他指給你的答案就是那扇通向死亡的門,因為他會誠實地告訴你那個說謊的人會怎麼說。

如果你問的是那個只說謊話的,你得到的也是錯誤的答案,因為另一個人是講真話的,說謊話的人會告訴你與講真話的人相反的答案。

所以你只要隨便問一個人上述問題,然後選擇與他們說的相反的門就行了。


問題二:

“你前面站了5個人,他們中間只有一個人講真話……”

這個問題比上個問題難就難在,你只知道他們五個中有一個只講真話,但其餘四個,他們有時候講真話,有時候講假話,只有一點可以確定,這四個人將真話和假話有個規律:如果這次講了真話,下次就會講假話,如果這次講假話,下次就講真話。你的任務是,把五個人中那個只講真話的人找出來。
你可以問兩個問題,兩個問題可以向同一個人發問,也可以分別問兩個人。
你該問什麼問題?

小提示:你可以這樣安排兩個問題承擔的任務:首先你可以先問一個問題,不管得到的答案是什麼,你都能從中知道下一個問題你將得到的答案是真是假。

求職者的最佳答案:

隨便找一個人,首先問:“你是那個只講真話的嗎?”如果答案是肯定的,你再問這個人:“誰是只講真話的?”;如果第一個問題你得到的答案是否定的,你就再問對方“誰不是只講真話的?”

正如這個問題給出的提示,第一個問題的價值在於,如果你得到的答案是“我是”,那麼你問的人要么是那個只講真話的,要么是那個這一輪講假話的“半真話半假話”者,不管是誰,他下一輪一定會說真話。所以你可以繼續問這個人:“誰是只講真話的?”對方的答案就是正確答案。

如果對第一個問題你得到的答案是“我不是”,那麼回答者不可能是只講真話的那個人,只能是一個此輪講真話的“半真話半假話”者。此人下一輪將會說假話,所以你應該問他:“誰不是只講真話的?”同樣他告訴你的,只能是那個只講真話的。


問題三:

“外星人打算將地球用來種蘑菇,並且已經抓了十個人類……”

外星人用這十個人代表地球60億人口,將通過外星人的方式來測試這十個人,決定地球是不是有資格加入跨星際委員會,如果沒有,就把地球變成一個蘑菇農場。

明天,這十個人將被關在一間漆黑的屋子裡前後排成一隊,外星人將給每個人戴一頂帽子,帽子為紫色或者綠色,然後外星人會將燈打開,這十個人每個人都無法看見自己頭上的帽子是什麼顏色,但可以看見排在你前面的每個人頭上帽子的顏色。

帽子的顏色是隨機的,可能全是紫的,也可能全是綠的,或者是任意的組合。

外星人會從後往前問每一個人:“你頭上的帽子是什麼顏色?”如果這個人答對了,這個人就安然無事,他所代表的地球上6億人口也將獲救。否則,這個人將被爆頭,外星人將把他所代表的6億人口變成蘑菇的肥料。每個人的答案屋子裡所有人都可以聽到。

現在,人類的命運在你手上,你可以設計一個方案,使這十個人提前製定一個計劃,這個計劃必須拯救盡可能多的人。

提示:有個方案可以讓你拯救其中至少九個人。

求職者的最佳答案:

第十個人計算排在前面的所有人的綠帽子是奇數還是偶數並向前面的人發出一個信號,這樣排在前面人就可以再通過排在更前面的所有人的綠帽子的奇偶數是否變化來判斷自己帽子的顏色,因為如果綠帽子奇偶發生變化,那自己就是那個導致變化的“綠帽子”,如果沒變化,自己就是“紫帽子”。
因為所有的人除了回答外星人的問題不能說話,所以第十個人的“信號”只能包含在自己的答案裡,比如如果排在前面的九個人有奇數頂綠帽子,這個人類就告訴外星人自己的帽子是“綠色”,如果是偶數,就猜自己的帽子是“紫色”。這樣等於給他前面的人一個暗號,排在他前面的這個人,可以通過計算自己前面的所有人的綠帽子的奇偶變化來判斷自己的帽子是綠還是紫。

排在最後的那個人為了大眾利益沒有選擇,根據前面的人的帽子情況告訴外星人自己是“綠帽子”還是“紫帽子”,他的答案有1/2的機率正確,但他前面的人一定都能答對。

還沒懂?比如第十個人看到前面有奇數個綠帽子,他就告訴外星人自己的是綠色,這是他前面的人就知道他的意思是前面九個人中有奇數個綠帽子,這是第九個人再數前面八個人的,如果前面八個人中也有奇數個,那自己就是紫色帽子。第九個人告訴外星人自己是紫色帽子,第八個人就知道綠帽子沒有減少還是奇數個,再數數前面七個人綠帽子數的奇偶,就可以判斷自己帽子的顏色;反之,如果第九個人告訴外星人自己是綠色帽子,那第八個人就應該知道綠色帽子減少了一個由奇數變成了偶數,再看看前面所有的綠帽子情況作出判斷。這樣一個接一個,只要每個人都認真聽後面的人的答案並在心裡計算所剩綠帽子的奇偶變化,前面九個人都能獲救。

當然,你也可以計算紫色帽子的奇偶。


問題四:

“100個完美的邏輯學家坐在一個房間裡……”

這是一個電視真人秀節目,節目裡100個擁有完美無瑕邏輯思維能力的人圍成一圈坐在一個房間裡。在進入房間前,這100個人被告知,100個人中至少有一個人的額頭是藍色的。你可以看見別人額頭的顏色,但無法看到自己的,你需要對自己額頭是不是藍色進行猜測,在房間的燈被關掉時,如果你推測出你的額頭是藍色的,你需要站起來離開房間。

然後房間的燈被再次打開,那些認為自己額頭是藍色的人已經不在屋內。接下來燈會再次被關掉,剩下的人中推測自己額頭是藍色的離開房間,如此重複。

問題來了,假設這100個人的額頭都是藍色的,將會發生什麼情況?注意,這100個人都有完美無瑕的邏輯推理能力,他們會根據其他人的額頭顏色對自己進行合理的推理和猜測。

提示:想想看,如果100個人不全是藍色額頭,又會發生什麼情況?

求職者的最佳答案:

將會出現的情況是:燈關了又開,開了又關,重複到第一百次時,所有人都同時離開。

這是為什麼呢?想想看,每個人都看見其他99個人額頭是藍色的,燈關掉後再打開,發現這99個藍色額頭的同伴都沒有離開,然後燈再次關掉後打開,如此重複100遍後,所有人同時離開了房間。
這麼理解吧,假設只有一個人的額頭是藍色的,由於這100個人事先被告知至少有一個人額頭是藍色,所以這個人如果看到其他99個人額頭都不是藍色,立馬就知道自己是藍色,所以燈一關掉,這個人就會離開房間。

如果有兩個人額頭是藍色呢?

其中一個藍色額頭的人會想:我的額頭可能是藍色也可能不是藍色,現在其他99個人中有一個藍色額頭的人,如果我不是藍色,那麼就只有這一個人是,那麼他看到我們都不是藍色額頭就能推斷出他是,那麼燈一關他就會離開,我先等一下,燈再打開如果他已經走了,那就證明我的額頭不是藍色的。

反之,如果我的額頭是藍色的,那個藍色額頭的人的想法會和我剛才的想法一樣先等一等,第一次關燈他不會離開,這樣如果燈開了那個藍色額頭的人還在,就證明我的額頭也是藍色的。這樣第二次關燈我們倆會一起離開。

以此類推,如果有三個人額頭是藍色,你看到另外兩個人額頭是藍色,應該推算出如果自己的額頭不是藍色的話,那麼燈第二次關的時候他們倆會同時離開,如果他們倆沒有同時離開,那就證明我的額頭是藍色的,我應該在第三次關燈的時候離開。結果是,三個藍色額頭的人在第三次關燈的時候同時離開。

把上述邏輯重複一百遍,你就得到了最上面的正確答案。


問題五:

“你有一個橫6豎6的方格……”

你現在在左上第一個格子裡,你的任務是移動到最右下腳的格子裡,你每次只能向右或者向下移動,不能斜向移動,也不能後退。

你能找出幾種方法移動到最右下腳的格子?

求職者的最佳答案:

252種。

從對稱的角度思考這個問題。

隨便挑選一個格子,假設你從出發點有n種方法從到達與所選格子上邊相鄰的格子,m種方法到達與它左邊相鄰的格子。

想想看,從出發點到達一個格子的方法與到達它左邊和上邊的格子的方法有什麼關係?說對了,由於你只能向右和向下移動,到達一個格子,不是從它左邊來,就是從它上邊來。所以你從出發點到達一個格子的方法等於到達它上邊格子的方法好到達它左邊格子的方法的和相同,也就是n+m。
這樣,參照上圖,你就可以算出從出發點到達每一個格子的方法了。


問題六:

“邏輯學家們圍成一圈坐著,他們的額頭上面畫有數字……”

又來一個邏輯學家圍成一圈的問題,這次是這樣的,三個擁有完美邏輯推理能力的人圍成一圈坐在一個房間裡,每個人的額頭上都畫著一個大於0的數字,三個人的數字各不相同,每個人都看得見其他兩個人的數字,看不見自己的。

這三個數字的情況是,其中一個數字是其他兩個數字的和,已知的情況還有,其中一個邏輯學家的數字是20,一個是30。

遊戲組織者從這三個邏輯學家後面走過,並問三個人各自額頭上的數字是什麼。但第一輪每個邏輯學家都回答他們無法推測自己的數字是什麼。遊戲組織者只好進行第二輪的發問,這是為什麼?你能據此猜出三個邏輯學家的數字嗎?

求職者的最佳答案:

結果由第三個邏輯學家的答案而定。他們三個的數字分別是20,30和50。

假設第二個和第三個邏輯學家額頭上的數字是20和30,這時候如果第一個邏輯學家的數字是10,那麼第二個邏輯學家看到其他兩個人一個是10,一個是30,會想:“我要么是20,要么是40。”

第三個邏輯學家看到其他兩個人一個是10,一個是20,會想:“我要么是30,要么是10,但我不會是10,因為每個數字都不一樣,所以我應該是30。”

這樣第三個邏輯學家就會猜出自己的數字是30了,但他沒有,第一輪誰也沒有準確推測出自己的數字,這說明我們的前提不正確,第一個邏輯學家的數字不是10,那麼他只能是50。


問題七:

“你面前有一百個燈泡,排成一排……”

一百個燈泡排成一排,第一輪你把他們全都打開亮著,然後第二輪,你每隔一個燈泡關掉一個,這樣所有排在偶數的燈泡都被關掉了。

然後第三輪,你每隔兩個燈泡,將開著的燈泡關掉,關掉的燈泡打開(也就是說將所有排在3的倍數的燈泡的開關狀態改變)。

以此類推,你將所有排在4的倍數的燈泡的開關狀態改變,然後將排在5的倍數的燈泡開關狀態改變……
第100輪的時候,還有幾盞燈泡亮著?

提示:如果你是第n輪(n大於1小於100),排在n的倍數位置的燈泡的開關狀態就發生轉變。

反過來,比如第8個燈泡,當你在8的因子輪(即第1,2,4和8輪)的時候,它就會改變開關狀態。所以對於第m個燈泡,如果m有奇數個因子,你的開關狀態就發生奇數次變化。

求職者的最佳答案:

10盞燈泡亮著,這10盞燈泡排位數都是平方數。

根據提示已經可以看出,這個問題的實質就是找出有多少個燈泡的排位數擁有奇數個因子。每擁有一個因子,到這個因子數的那一輪時,這個燈泡就會被轉換開關狀態。

比如第1輪,因為所有100個數字都有因數1,所以全部被打開;第2輪,只有那些擁有2這個因子、能被2整除的數字的燈泡轉換狀態被關掉;第3輪,只有那些擁有3這個因子、能被3整除的數字的燈泡被轉換狀態。以此類推,如果燈泡排位數擁有奇數個因子,意味著它被打開和關上奇數次,那它就最終還是被打開的狀態,如果燈泡排位數擁有偶數個因子,那它最終就是被關上的狀態。

比如第1個燈泡有奇數個因子,第2個有偶數個(1,2),第3個有偶數個(1,3)第4個有奇數個(1,2,4),所以第4個燈泡最後還是亮著的。

最終計算得出,所有排位數為平方數的燈泡最終還是亮著的,因為這些數都擁有奇數個因子,1,4,9,16……

在100以內,共有10個平方數,分別是1,4,9,16,25,36,49,64,81,100。這10個排位數的燈泡,最終都還是亮著。


問題八:

“你有一個立方體,立方體的邊長是3……”

這個問題比前面那個從左上格子走到右下格子的問題難,因為那畢竟是個平面問題。如圖所示,這次的任務是從立方體的背面左上的小立方體走到完全相對的正面右下小立方體。

你可以往上移,也可以往下移,還可以往前移。 You can move toward the front, you can move down, or you can move upward。

問題還是,你共有幾種走法?

求職者的最佳答案:

90種,思路是將這個立方體分成“三層”。

上面平面圖的那道題的思路就是個最好的提示。你可以將這個立方體分成“三層”,粉紅色代表最上面那層,紫色代表中間那層,橘紅色代表下面那層。

現在,我們把問題變成了:從左邊、右邊和上邊到達目標小立方體的走法共有多少(如圖所示,即到達紫色中間層最右下腳方塊以及橘紅色最右下腳左邊以及上邊相鄰方塊的方法)?假設從起點小立方體到達終點小立方體左邊相鄰小立方體共有m種方法,到達右邊相鄰小立方體共有n種方法,到達上邊相鄰小立方體有r種方法,那我們需要求出來的,就是n +m+r。

按照前面那道平面題的思路和方法,你就可以一點一點計算出來我們的正確答案

[轉貼]蘋果8大筆試題及答案

沒有留言: