蘋果八大難死人不償命的筆試題
蘋果公司在招聘員工時,會向求職者問一些“可汗學院”(Khan Academy)提出的考驗智商的謎題。你可能沒聽說過“可汗學院”,但“可汗學院”的謎題被蘋果采用一定是有其道理的。可汗學院由孟加拉裔美國人薩爾曼 ?可汗(Salman Kahan)創(chuàng)立,是一家由谷歌和比爾&梅琳達?蓋茨基金會背后支持的教育性非營利組織,主旨在于利用網(wǎng)絡影片進行免費授課,目前已經(jīng)有關于數(shù)學、歷史、金融、物理、化學、生物、天文學等科目的內容……
蘋果在面試過程中隨時都有可能向求職者拋出這些考驗智商與邏輯的問題,因此如果你向往進入蘋果工作,這些艱澀的問題在面試前必須謹慎對待仔細研究,因為蘋果的原則是——不能出錯,哪怕你已經(jīng)級別很高,是沖著蘋果的高級軟件工程師職位而來也不例外。
幸運的是,這些問題雖然刁鉆,但卻都有唯一的答案,所以你只要有備而來,還是可以應對自如的,下面是8個蘋果面試過程中求職者可能遇到的問題,以及已經(jīng)被各路聰明的求職者破解的答案。
問題一:
“你面前有兩扇門,其中一扇門內藏著寶藏,但如果你不小心闖入另一扇門,只能痛苦地慢慢死掉……”
這一聽就是那種經(jīng)典的最令人頭痛的一類問題,但其實與其他問題相比,這只是個熱身。在這兩扇門后面,有兩個人,這兩個人都知道哪扇門后有寶藏,哪扇門擅闖者死,而這兩個人呢,一個人只說真話,一個人只說假話。
誰說真話誰說假話?那就要看你有沒有智慧自己找出來了,游戲規(guī)則是,你只能問這兩個人每人一個問題。
那么,你問什么問題?問哪個人?根據(jù)他們的回答,你又該怎么做?
求職者的最佳答案:
隨便問其中一個人:“如果我問另一個人,他會跟我說哪扇門后是寶藏?
如果你問的恰好是講真話的那個人,那他指給你的答案就是那扇通向死亡的門,因為他會誠實地告訴你那個說謊的人會怎么說。
如果你問的是那個只說謊話的,你得到的也是錯誤的答案,因為另一個人是講真話的,說謊話的人會告訴你與講真話的人相反的答案。
所以你只要隨便問一個人上述問題,然后選擇與他們說的相反的門就行了。
問題二:
“你前面站了5個人,他們中間只有一個人講真話……”
這個問題比上個問題難就難在,你只知道他們五個中有一個只講真話,但其余四個,他們有時候講真話,有時候講假話,只有一點可以確定,這四個人將真話 和假話有個規(guī)律:如果這次講了真話,下次就會講假話,如果這次講假話,下次就講真話。你的任務是,把五個人中那個只講真話的人找出來。
你可以問兩個問題,兩個問題可以向同一個人發(fā)問,也可以分別問兩個人。
你該問什么問題?
小提示:你可以這樣安排兩個問題承擔的任務:首先你可以先問一個問題,不管得到的答案是什么,你都能從中知道下一個問題你將得到的答案是真是假。
求職者的最佳答案:
隨便找一個人,首先問:“你是那個只講真話的嗎?”如果答案是肯定的,你再問這個人:“誰是只講真話的?”;如果第一個問題你得到的答案是否定的,你就再問對方“誰不是只講真話的?”
正如這個問題給出的提示,第一個問題的價值在于,如果你得到的答案是“我是”,那么你問的人要么是那個只講真話的,要么是那個這一輪講假話的“半真話半假話”者,不管是誰,他下一輪一定會說真話。所以你可以繼續(xù)問這個人:“誰是只講真話的?”對方的答案就是正確答案。
如果對第一個問題你得到的答案是“我不是”,那么回答者不可能是只講真話的那個人,只能是一個此輪講真話的“半真話半假話”者。此人下一輪將會說假話,所以你應該問他:“誰不是只講真話的?”同樣他告訴你的,只能是那個只講真話的。
問題三:
“外星人打算將地球用來種蘑菇,并且已經(jīng)抓了十個人類……”
外星人用這十個人代表地球60億人口,將通過外星人的方式來測試這十個人,決定地球是不是有資格加入跨星際委員會,如果沒有,就把地球變成一個蘑菇農場。
明天,這十個人將被關在一間漆黑的屋子里前后排成一隊,外星人將給每個人戴一頂帽子,帽子為紫色或者綠色,然后外星人會將燈打開,這十個人每個人都無法看見自己頭上的帽子是什么顏色,但可以看見排在你前面的每個人頭上帽子的顏色。
帽子的顏色是隨機的,可能全是紫的,也可能全是綠的,或者是任意的組合。
外星人會從后往前問每一個人:“你頭上的帽子是什么顏色?”如果這個人答對了,這個人就安然無事,他所代表的地球上6億人口也將獲救。否則,這個人將被爆頭,外星人將把他所代表的6億人口變成蘑菇的肥料。每個人的答案屋子里所有人都可以聽到。
現(xiàn)在,人類的命運在你手上,你可以設計一個方案,使這十個人提前制定一個計劃,這個計劃必須拯救盡可能多的人。
提示:有個方案可以讓你拯救其中至少九個人。
求職者的最佳答案:
第十個人計算排在前面的所有人的綠帽子是奇數(shù)還是偶數(shù)并向前面的人發(fā)出一個信號,這樣排在前面人就可以再通過排在更前面的所有人的綠帽子的奇偶數(shù)是 否變化來判斷自己帽子的顏色,因為如果綠帽子奇偶發(fā)生變化,那自己就是那個導致變化的“綠帽子”,如果沒變化,自己就是“紫帽子”。
因為所有的人除了回答外星人的問題不能說話,所以第十個人的“信號”只能包含在自己的答案里,比如如果排在前面的九個人有奇數(shù)頂綠帽子,這個人類就告訴外 星人自己的帽子是“綠色”,如果是偶數(shù),就猜自己的帽子是“紫色”。這樣等于給他前面的人一個暗號,排在他前面的這個人,可以通過計算自己前面的所有人的 綠帽子的奇偶變化來判斷自己的帽子是綠還是紫。
排在最后的那個人為了大眾利益沒有選擇,根據(jù)前面的人的帽子情況告訴外星人自己是“綠帽子”還是“紫帽子”,他的答案有1/2的幾率正確,但他前面的人一定都能答對。
還沒懂?比如第十個人看到前面有奇數(shù)個綠帽子,他就告訴外星人自己的是綠色,這是他前面的人就知道他的意思是前面九個人中有奇數(shù)個綠帽子,這是第九 個人再數(shù)前面八個人的,如果前面八個人中也有奇數(shù)個,那自己就是紫色帽子。第九個人告訴外星人自己是紫色帽子,第八個人就知道綠帽子沒有減少還是奇數(shù)個, 再數(shù)數(shù)前面七個人綠帽子數(shù)的奇偶,就可以判斷自己帽子的顏色;反之,如果第九個人告訴外星人自己是綠色帽子,那第八個人就應該知道綠色帽子減少了一個由奇 數(shù)變成了偶數(shù),再看看前面所有的綠帽子情況作出判斷。這樣一個接一個,只要每個人都認真聽后面的人的答案并在心里計算所剩綠帽子的奇偶變化,前面九個人都 能獲救。
當然,你也可以計算紫色帽子的奇偶。
問題四:
“100個完美的邏輯學家坐在一個房間里……”
這是一個電視真人秀節(jié)目,節(jié)目里100個擁有完美無瑕邏輯思維能力的人圍成一圈坐在一個房間里。在進入房間前,這100個人被告知,100個人中至 少有一個人的額頭是藍色的。你可以看見別人額頭的顏色,但無法看到自己的,你需要對自己額頭是不是藍色進行猜測,在房間的燈被關掉時,如果你推測出你的額 頭是藍色的,你需要站起來離開房間。
然后房間的燈被再次打開,那些認為自己額頭是藍色的人已經(jīng)不在屋內。接下來燈會再次被關掉,剩下的人中推測自己額頭是藍色的離開房間,如此重復。
問題來了,假設這100個人的額頭都是藍色的,將會發(fā)生什么情況?注意,這100個人都有完美無瑕的邏輯推理能力,他們會根據(jù)其他人的額頭顏色對自己進行合理的推理和猜測。
提示:想想看,如果100個人不全是藍色額頭,又會發(fā)生什么情況?
求職者的最佳答案:
將會出現(xiàn)的情況是:燈關了又開,開了又關,重復到第一百次時,所有人都同時離開。
這是為什么呢?想想看,每個人都看見其他99個人額頭是藍色的,燈關掉后再打開,發(fā)現(xiàn)這99個藍色額頭的同伴都沒有離開,然后燈再次關掉后打開,如此重復100遍后,所有人同時離開了房間。
這么理解吧,假設只有一個人的額頭是藍色的,由于這100個人事先被告知至少有一個人額頭是藍色,所以這個人如果看到其他99個人額頭都不是藍色,立馬就知道自己是藍色,所以燈一關掉,這個人就會離開房間。
如果有兩個人額頭是藍色呢?
其中一個藍色額頭的人會想:我的額頭可能是藍色也可能不是藍色,現(xiàn)在其他99個人中有一個藍色額頭的人,如果我不是藍色,那么就只有這一個人是,那么他看到我們都不是藍色額頭就能推斷出他是,那么燈一關他就會離開,我先等一下,燈再打開如果他已經(jīng)走了,那就證明我的額頭不是藍色的。
反之,如果我的額頭是藍色的,那個藍色額頭的人的想法會和我剛才的想法一樣先等一等,第一次關燈他不會離開,這樣如果燈開了那個藍色額頭的人還在,就證明我的額頭也是藍色的。這樣第二次關燈我們倆會一起離開。
以此類推,如果有三個人額頭是藍色,你看到另外兩個人額頭是藍色,應該推算出如果自己的額頭不是藍色的話,那么燈第二次關的時候他們倆會同時離開, 如果他們倆沒有同時離開,那就證明我的額頭是藍色的,我應該在第三次關燈的時候離開。結果是,三個藍色額頭的人在第三次關燈的時候同時離開。
把上述邏輯重復一百遍,你就得到了最上面的正確答案。
問題五:
“你有一個橫6豎6的方格……”
你現(xiàn)在在左上第一個格子里,你的任務是移動到最右下腳的格子里,你每次只能向右或者向下移動,不能斜向移動,也不能后退。
你能找出幾種方法移動到最右下腳的格子?
求職者的最佳答案:
252種。
從對稱的角度思考這個問題。
隨便挑選一個格子,假設你從出發(fā)點有n種方法從到達與所選格子上邊相鄰的格子,m種方法到達與它左邊相鄰的格子。
想想看,從出發(fā)點到達一個格子的方法與到達它左邊和上邊的格子的方法有什么關系?說對了,由于你只能向右和向下移動,到達一個格子,不是從它左邊 來,就是從它上邊來。所以你從出發(fā)點到達一個格子的方法等于到達它上邊格子的方法好到達它左邊格子的方法的和相同,也就是n+m。
問題六:
又來一個邏輯學家圍成一圈的問題,這次是這樣的,三個擁有完美邏輯推理能力的人圍成一圈坐在一個房間里,每個人的額頭上都畫著一個大于0的數(shù)字,三個人的數(shù)字各不相同,每個人都看得見其他兩個人的數(shù)字,看不見自己的。
這三個數(shù)字的情況是,其中一個數(shù)字是其他兩個數(shù)字的和,已知的情況還有,其中一個邏輯學家的數(shù)字是20,一個是30。
游戲組織者從這三個邏輯學家后面走過,并問三個人各自額頭上的數(shù)字是什么。但第一輪每個邏輯學家都回答他們無法推測自己的數(shù)字是什么。游戲組織者只好進行第二輪的發(fā)問,這是為什么?你能據(jù)此猜出三個邏輯學家的數(shù)字嗎?
求職者的最佳答案:
結果由第三個邏輯學家的答案而定。他們三個的數(shù)字分別是20,30和50。
假設第二個和第三個邏輯學家額頭上的數(shù)字是20和30,這時候如果第一個邏輯學家的數(shù)字是10,那么第二個邏輯學家看到其他兩個人一個是10,一個是30,會想:“我要么是20,要么是40。”
第三個邏輯學家看到其他兩個人一個是10,一個是20,會想:“我要么是30,要么是10,但我不會是10,因為每個數(shù)字都不一樣,所以我應該是30?!?/p>
這樣第三個邏輯學家就會猜出自己的數(shù)字是30了,但他沒有,第一輪誰也沒有準確推測出自己的數(shù)字,這說明我們的前提不正確,第一個邏輯學家的數(shù)字不是10,那么他只能是50。
問題七:
“你面前有一百個燈泡,排成一排……”
一百個燈泡排成一排,第一輪你把他們全都打開亮著,然后第二輪,你每隔一個燈泡關掉一個,這樣所有排在偶數(shù)的燈泡都被關掉了。
然后第三輪,你每隔兩個燈泡,將開著的燈泡關掉,關掉的燈泡打開(也就是說將所有排在3的倍數(shù)的燈泡的開關狀態(tài)改變)。
以此類推,你將所有排在4的倍數(shù)的燈泡的開關狀態(tài)改變,然后將排在5的倍數(shù)的燈泡開關狀態(tài)改變……
第100輪的時候,還有幾盞燈泡亮著?
提示:如果你是第n輪(n大于1小于100),排在n的倍數(shù)位置的燈泡的開關狀態(tài)就發(fā)生轉變。
反過來,比如第8個燈泡,當你在8的因子輪(即第1,2,4和8輪)的時候,它就會改變開關狀態(tài)。所以對于第m個燈泡,如果m有奇數(shù)個因子,你的開關狀態(tài)就發(fā)生奇數(shù)次變化。
求職者的最佳答案:
10盞燈泡亮著,這10盞燈泡排位數(shù)都是平方數(shù)。
根據(jù)提示已經(jīng)可以看出,這個問題的實質就是找出有多少個燈泡的排位數(shù)擁有奇數(shù)個因子。每擁有一個因子,到這個因子數(shù)的那一輪時,這個燈泡就會被轉換開關狀態(tài)。
比如第1輪,因為所有100個數(shù)字都有因數(shù)1,所以全部被打開;第2輪,只有那些擁有2這個因子、能被2整除的數(shù)字的燈泡轉換狀態(tài)被關掉;第3輪, 只有那些擁有3這個因子、能被3整除的數(shù)字的燈泡被轉換狀態(tài)。以此類推,如果燈泡排位數(shù)擁有奇數(shù)個因子,意味著它被打開和關上奇數(shù)次,那它就最終還是被打 開的狀態(tài),如果燈泡排位數(shù)擁有偶數(shù)個因子,那它最終就是被關上的狀態(tài)。
比如第1個燈泡有奇數(shù)個因子,第2個有偶數(shù)個(1,2),第3個有偶數(shù)個(1,3)第4個有奇數(shù)個(1,2,4),所以 第4個燈泡最后還是亮著的。
最終計算得出,所有排位數(shù)為平方數(shù)的燈泡最終還是亮著的,因為這些數(shù)都擁有奇數(shù)個因子,1,4,9,16……
在100以內,共有10個平方數(shù),分別是1,4,9,16,25,36,49,64,81,100。這10個排位數(shù)的燈泡,最終都還是亮著。
問題八:
“你有一個立方體,立方體的邊長是3……”
這個問題比前面那個從左上格子走到右下格子的問題難,因為那畢竟是個平面問題。如圖所示,這次的任務是從立方體的背面左上的小立方體走到完全相對的正面右下小立方體。
你可以往上移,也可以往下移,還可以往前移。You can move toward the front, you can move down, or you can move upward。
問題還是,你共有幾種走法?
求職者的最佳答案:
90種,思路是將這個立方體分成“三層”。
上面平面圖的那道題的思路就是個最好的提示。你可以將這個立方體分成“三層”,粉紅色代表最上面那層,紫色代表中間那層,橘紅色代表下面那層。
現(xiàn)在,我們把問題變成了:從左邊、右邊和上邊到達目標小立方體的走法共有多少(如圖所示,即到達紫色中間層最右下腳方塊以及橘紅色最右下腳左邊以及 上邊相鄰方塊的方法)?假設從起點小立方體到達終點小立方體左邊相鄰小立方體共有m種方法,到達右邊相鄰小立方體共有n種方法,到達上邊相鄰小立方體有r 種方法,那我們需要求出來的,就是n+m+r。
問題5,就是多少種方法,C5/10,就是10步里面選5步,向右還是向下的問題。