- 相關(guān)推薦
有趣的程序員面試問(wèn)題
一、如何用一枚硬幣等概率地產(chǎn)生一個(gè)1到3之間的隨機(jī)整數(shù)?如果這枚硬幣是不公正的呢?
答案:如果是公正的硬幣,則投擲兩次,“正反”為1,“反正”為2,“正正”為3,“反反”重來(lái)。
如果是不公正的硬幣,注意到出現(xiàn)“正反”和“反正”的概率一樣,因此令“正反反正”、“反正正反”、“正反正反”分別為1、2、3,其余情況重來(lái)。另一種更妙的辦法是,投擲三次硬幣,“正反反”為1,“反正反”為2,“反反正”為3,其余情況重來(lái)。
二、給一個(gè)瞎子52張撲克牌,并告訴他里面恰好有10張牌是正面朝上的。要求這個(gè)瞎子把牌分成兩堆,使得每堆牌里正面朝上的牌的張數(shù)一樣多。瞎子應(yīng)該怎么做?
程序員看過(guò)來(lái),10個(gè)精彩的智力問(wèn)題!0
答案:把撲克牌分成兩堆,一堆10張,一堆42張。然后,把小的那一堆里的所有牌全部翻過(guò)來(lái)。
三、初始時(shí),兩個(gè)口袋里各有一個(gè)球。把后面的n-2個(gè)球依次放入口袋,放進(jìn)哪個(gè)口袋其概率與各口袋已有的球數(shù)成正比。這樣下來(lái),球數(shù)較少的那個(gè)口袋平均期望有多少個(gè)球?
答案:先取者可以讓自己總是取奇數(shù)位置上的硬幣或者總是取偶數(shù)位置上的硬幣。數(shù)一數(shù)是奇數(shù)位置上的面值總和多還是偶數(shù)位置上的面值總和多,然后總是取這些位置上的硬幣就可以了。
四、30枚面值不全相同的硬幣擺成一排,甲、乙兩個(gè)人輪流選擇這排硬幣的其中一端,并取走最外邊的那枚硬幣。如果你先取硬幣,能保證得到的錢不會(huì)比對(duì)手少嗎?
答案:先取者可以讓自己總是取奇數(shù)位置上的硬幣或者總是取偶數(shù)位置上的硬幣。數(shù)一數(shù)是奇數(shù)位置上的面值總和多還是偶數(shù)位置上的面值總和多,然后總是取這些位置上的硬幣就可以了。
五、一個(gè)環(huán)形軌道上有n個(gè)加油站,所有加油站的油量總和正好夠車跑一圈。證明,總能找到其中一個(gè)加油站,使得初始時(shí)油箱為空的汽車從這里出發(fā),能夠順利環(huán)行一圈回到起點(diǎn)。
答案:總存在一個(gè)加油站,僅用它的油就足夠跑到下一個(gè)加油站(否則所有加油站的油量加起來(lái)將不夠全程)。把下一個(gè)加油站的所有油都提前搬到這個(gè)加油站來(lái),并把油已被搬走的加油站無(wú)視掉。在剩下的加油站中繼續(xù)尋找油量足以到達(dá)下個(gè)加油站的地方,不斷合并加油站,直到只剩一個(gè)加油站為止。顯然從這里出 發(fā)就能順利跑完全程。
另一種證明方法:先讓汽車油箱里裝好足夠多的油,隨便從哪個(gè)加油站出發(fā)試跑一圈。車每到一個(gè)加油站時(shí),記錄此時(shí)油箱里剩下的油量,然后把那個(gè)加油站的油全部裝上。試跑完一圈后,檢查剛才路上到哪個(gè)加油站時(shí)剩的油量最少,那么空著油箱從那里出發(fā)顯然一定能跑完全程。
【有趣的程序員面試問(wèn)題】相關(guān)文章:
程序員面試問(wèn)題整理版08-07
程序員面試過(guò)程中的經(jīng)典問(wèn)題09-24
面試經(jīng)典問(wèn)題08-09
程序員面試技巧精選08-04
給程序員的面試技巧09-25
面試的著裝問(wèn)題02-21
面試經(jīng)典問(wèn)題回答08-09
廚師面試的問(wèn)題08-27
關(guān)于面試的問(wèn)題08-23