最難面試題,你遇到過什麼樣的?
(點擊
上方公眾號
,可快速關注)
來源:伯樂在線 - 劉唱
如有好文章投稿,請點擊 → 這裡了解詳情
【伯樂在線導讀】:本文介紹了幾道面試中遇到的難題,如果你遇到了這種難題,你會怎麼回答呢?
Prashant Bagdia, Final year CS undergrad, NIT Warangal
下面這個問題,是我一個朋友在微軟校招面試時被問到的。
面試官:OK,最後一個問題。一個直角三角形,底邊是10,向底邊所做的高是 6,求這個三角形的面積。
我的朋友開始思考了,「為什麼一個軟體公司會問一個幾何問題呢,而且還是這麼沒價值的一道題!難道這是一個陷阱題!?也可能這不是陷阱題,但是他想讓我這樣認為然後我就會在這麼簡單的一道題目上搞砸!?」
他(我朋友)考慮了一會兒然後回答道:
朋友:先生,因為任意一個三角形的面積都是 0.5 × 底× 高,所以這道題的答案是0.5*10*6也就是30!
面試官:你確定?再想一想!
*我朋友又想了一會兒然後非常自信地回復*
朋友:是的先生,我非常確定這個三角形的面積是30。你只是在擾亂我的思想,讓我改變主意,這樣我就會在這個簡單的問題上出錯。
(這就是我那個朋友對面試官說的原話!)
面試官:好吧,你的回答是錯的,這是此次面試的最後一題,你可以在外面等一下,我們稍後會公布結果。
朋友:先生,能不能請您告訴我正確答案是什麼?
面試官:正確答案是,這樣的三角形不存在。你好好考慮一下就會知道為什麼了!
我朋友傻眼了,他離開了房間,還在想為什麼這個三角形不存在。
最終結果:他落選了!
———————————————————————————————-
以下是這道題目的解答:事實證明,上述直角三角形斜邊上的高的最大長度只能是5,而不可能是6,所以它最大面積是25。
斜邊的對角必須是直角,也就是90度。這意味著兩個直角邊構成的角所對的圓心角一定是180度。斜邊一定是這個圓的直徑,另一個頂點可以是圓上的任意一個點(除了斜邊的兩個頂點)。
第三個點到斜邊的垂直距離就是斜邊上的高。當第三個點在圓的最上方或最下方的時候該垂直距離最大,並且長度等於圓的半徑(斜邊長度的一半,斜邊是圓的直徑)。
因此,一個底邊是10 的直角三角形,底邊上的高最大只能是5。
我要說這真是最難回答的問題之一。因為困難的部分非常好地偽裝在一個非常簡單的問題之下。一個像微軟這樣的軟體巨頭問一個幾何問題看起來非常奇怪,但其實這一點都不奇怪。這個問題真正的動機就是考察候選人是否有非常強的分析能力,以及能否保持冷靜的頭腦,在編程領域,這兩點都是非常重要的。
在看到這麼多的困惑以後,我必須說清楚,給出的斜邊上的高是6。
更新1:在脫離了原有的框架做了一些思考以後,
Job Bouwman 指出這樣一個三角形可能是存在的
,但是(根據他的說法)你可能要承擔的風險就是你會被認為是一個自以為是的傢伙…
更新2:我剛剛在一個問題上遭遇了困難,這個問題很可能也是微軟面試(不太確定)中的一道題,而且我想我和大家分享一下會比較好。以下是問題鏈接:
My Tech Interviews
我本想在這裡解釋一下答案,但是鏈接中提供的答案更好,所以我還是直接留下鏈接吧。
Job Bouwman, All my interviews are Job interviews
來解一下微軟的陷阱題
面試官:OK,最後一個問題。一個直角三角形,底邊是10,向底邊所做的高是6,求這個三角形的面積。
於是這個候選人把底和高乘在一起,然後把結果除以2:
面積=10*6/2=30:
出乎他意料的是,面試官表示這樣的直角三角形不存在。當一個直角三角形底邊是10 的時候,高永遠都不能是6!
視覺上的證明
在Prashant的quora回答中
,他在視覺上是像下圖中這樣展示的:
認為底邊AC(=10)是圓的直徑,如果∠B=90°,那麼丁點必須在圓上,所以的邊上的垂線不能超過5(直徑的一半)。
這個例子就結束了,對嗎?有那麼一瞬間,我想了一下這個三角形…
…就在我想到如果底邊上高不是6之前,我想的是(高是)4.8。那麼沒錯,Prashant的視覺證明是非常可靠的:增加B到AC的距離就會將這張紙撕成兩半:
(當然了,除非它是畫在有彈性的材料上)
…但是等一下!
讓我們走出「歐幾里得」的框架的束縛,把這個三角形畫在一個半徑是20/π 的正球形的氣球上:
這是三角形嗎?
我們都知道三角形有三個頂點,且每一對頂點都用直線連接,也就是這些點與點之間的最短距離。
但是你的老師從沒有教過你的是,他指的永遠都是歐幾里得三角形,也就是 2D 平面上的三角形。
但是如果改變一下,在一個球形的黑板上教幾何呢?
球面三角形
讓我們從以下這個例子開始:設想三個城市之間的航線,這三個城市分布在不同的大陸上。出於經濟的原因,會有大致的最短路線。而且由於「最短路線」就是「直線」的代名詞,我們會把這三點用三條直線連接起來,也就是形成一個三角形:
是直線嗎?
但是這三條曲線怎麼能被叫做直線呢?當然,它們在3D空間中可能是直的,但是,它們相對於地球表面是直的,而地球表面是2D空間。這些最短路徑只是在我們看來是彎曲的,因為我們的眼睛有看到3D的捷徑。
為了說明這一點,讓我們回到氣球的問題,設想一隻螞蟻在氣球的2D表面上爬行,一隻蚊子在內部的3D空間中飛行。假設它們都是從A運動到C:
現在,這兩位老兄都有它們自己的「最短路徑」了,所以在他們生活的空間中,它們都是在「最短路線」上運動的!
差不多了:再看一下題目要求
當A和B在赤道上,C在北極點的時候,∠B 是 90°,因為AC是子午線,與赤道垂直相交,因此△ABC 是一個直角三角形,而且∠A=90°。
現在,讓AC作為長度為10的斜邊,在△ABC中,距離AC最遠的店是B(最上方),由B向斜邊做的垂線是6,因為由B到AC的最短路徑很明顯,就是AB。
最後一步:計算面積
為了計算三角形的面積,記赤道長度為40,三角形的底邊僅占赤道的6/40.因此三角形的面積覆蓋了上半球面積的6/40,也就是佔了全部球面的3/40.
由:
球的面積 = 4πr^2 = 4π(20/π)2 =1600/π
可以得到:
球的面積 = 3/40×1600/π = 120/π
得到結果簡直是小菜一碟!
注意:警告:不要在你的第一次面試當中自作聰明!
拓展閱讀:
Wikipedia
Non-Euclidean geometry
頁面
S.M. Coxeter 教授的經典教材
Non-Euclidean Geometry, H. S. M. Coxeter
附加:不止一個直角?
我看到了很多問題,包括球面三角形有兩個直角。你們都是對的,在平面幾何中這種情況是不可能出現的,但是在球面幾何中,我們甚至可以有三個直角的三角形。
如果你想親眼所見,去把一個橙子用三次垂直切法切成八塊。每一塊橙子皮都是一個球面三角形,而且有三個直角:
Abhimanyu Sood, Interviews are fun
這件事發生在我的一個朋友的技術崗位面試當中。
I 代表面試官,C 代表候選人
I
:有一個直徑
1km
的環形跑道。兩輛車
A
和
B
分別停在直徑的兩端,並且都面向順時針方向。在
t=0
的時候,兩輛車同時開始以恆定加速度
0.1m/s/s
行駛(初始速度是
0
)。由於兩輛車是以相同速度、加速度和順時針方向行駛,它們在行駛過程中會永遠保持在直徑的兩端。
在跑道的中間有一隻蟲子。當
t=0
時,這隻蟲子開始飛向
A
車。當它到達
A
車時,它會轉向並向
B
車飛去。當它到達
B
時,它會再一次轉向,向
A
車飛去,並一隻循環這個過程。整個過程中蟲子的速度是
1m/s
。
一個小時後,三個物體(
A
車、
B
車、蟲子)都停止運動。問:蟲子飛行的總距離是多少?
你作為一個讀者,會怎樣解決這個問題?
首先,這裡給了你一張圖來讓你看清楚初始狀態。
現在,讓我們試著想像一下這隻蟲子的路徑。這個問題說得是它永遠都會朝著一輛車移動。但是這兩輛車本身也在移動。所以,蟲子的路徑不會是直的。它會是一個複雜的螺旋狀的路徑。而且,汽車不是勻速運動,它們在加速,這會進一步使路徑複雜化。
因此,方案非常清晰,我們需要找到能夠對應蟲子在一次循環中的路徑的數學方程。然後我們可以簡單地從方程和一點點的積分運算中計算出距離,然後把結果乘以循環的次數。
但是怎樣去計算這個複雜的螺旋路徑的方程呢?
到了這裡我朋友就放棄了。
面試官鼓勵他至少講一下他的方案。我朋友解釋了以上方案。
這時,面試官說——「你準備好聽一聽我的解決方案了嗎?」
我朋友更想聽了。
面試官說
——「
蟲子全程以
1m/s
的速度飛行,並以這個恆定速度飛了一個小時,所以距離
=
速度
*
時間
=1m/s*3600s=3.6km」
。
我的想法:
我認為這個問題(以及它的解決方案)展示了生活本身的一個非常深刻的描述。大多數時候,我們面對一些看起來毫無希望的複雜情況,看上去好像沒有什麼辦法去解決它。
但是一旦你突破了它的局限——忽略那些不重要的,與最終解決辦法無關只會讓問題更加複雜的那些部分,你就會觸及問題的核心。這個核心往往是美好的,帶有著由於它的純粹和簡介而衍生出來的優雅。
有些人希望知道進一步的解釋。
就是這個問題提供了很多關於這三個物體的複雜的相關聯的運動的細節。但是那些信息全部都是與計算最終結果無關的。問題當中唯一重要的陳述就是
「
蟲子全程速度是
1m/s」
。這就是核心。一旦你認清它的速度是恆定的,蟲子的實際路徑就變得無關緊要了。無論哪個路徑有多複雜,總距離都可以由
「
距離
=
速度
*
時間
」
這個簡單的公式算出來。
這就是真正的難點。能夠識破外層的限定並抵達核心。這種能力就是面試官所尋找的。
附加:
我會定期寫一些面試相關的回答。你可以參考這個鏈接——https://www.quora.com/profile/Abhimanyu-Sood-2/answers/Interviewing
覺得本文對你有幫助?請分享給更多人
關注「程序員的那些事」,
編程不再枯燥
↓↓↓
※Greenlet 詳解
※Python標準庫:itertools模塊
※矽谷網紅課!19周成為最搶手的深度學習技術人才
※Python vs Ruby: 誰是最好的 web 開發語言?
※學慣用 Python 編程時要避免的 3 個錯誤
TAG:Python開發者 |
※遇到這些面試題你要怎麼回答?
※怎樣回答最難的五道面試題
※面試官:「給你5秒鐘,讓我記住你」,那些奇葩的面試題!
※今年最常見的前端面試題,你會做幾道?
※這道面試題,你敢說真話嗎?
※微軟AI面試題有多難?這裡有一份樣卷,你也來試試?
※揭秘!聽起來高大上的面試題竟是這樣來的!
※考驗智商的時候來到了:類似蘋果、谷歌等公司的面試題,你能答對幾個?
※谷歌、臉書、麥肯錫的面試題長什麼樣?這25題你能答出一半就保你「面遍天下」
※一大波面試題來襲,只待你來破解!
※愛迪生編寫的面試題,你能通過嗎?
※幼升小的面試題目竟然這麼難!網友:換我去可能要留級
※事業單位面試題:筷子我們每天都會使用,你有什麼啟示?
※抖音「面試官姐姐」火了,最浪漫的面試題目,網友:這是個圈套
※不可錯過的Rect面試題,請收藏
※一塊正方形蛋糕,如何切,可以分成7等份?常見面試題!
※你是吸血鬼還是喪屍?難倒留學生的牛津大學面試題,該怎麼答?
※HR面試題:「公司禁止談戀愛,你能做到么?」小姑娘的回答真大膽
※國企面試題:三個和尚沒水吃,若你是其中一個和尚,能夠吃到水嗎
※被黃聖依兒子的幼升小面試題嚇到了?現實的幼升小題目更難得多!