當前面試中各大名企經常出現各種各樣的概率類面試題。究其原因,我覺得是概率型面試題可以綜合考查面試者的思維能力、應變能力、數學能力。在這裡對各種型別的概率型題目進行了收集和總結,希望在自我總結的同時對大家有所幫助。
方法比較簡單,基本思想是每次隨機取乙個數,然後把它交換到最後的位置。然後對前(n-1)個數使用遞迴的演算法。
遞迴實現:
[cpp]view plain
copy
print?
void suffle_dfs(int ar, int n)
void suffle_dfs(int ar, int n)非遞迴實現:
[html]view plain
copy
print?
void suffle(int ar, int n) }
void suffle(int ar, int n)注:此處假設rand()的返回結果遠遠大於n。}
這種題目一看似乎答案就是1/2,但其實認真細想並沒有那麼簡單。
給所有的拋硬幣操作從1開始編號,顯然先手者只可能在奇數(1,3,5,7…)次拋硬幣得到蘋果,而後手只可能在偶數次(2,4,6,8…)拋硬幣得到蘋果。設先手者得到蘋果的概率為p,第1次拋硬幣得到蘋果的概率為1/2,在第3次(3,5,7…)以後得到蘋果的概率為p/4(這是因為這種只有在第1次和第2次拋硬幣都沒有拋到正面(概率為1/4=1/2*1/2)的時候才有可能發生,而且此時先手者在此面臨和開始相同的局面)。所以可以列出等式p=1/2+p/4,p=2/3。
現在答案已經很明確了,所以大家平時要注意不要這樣被人騙了,當然也不能去騙別人,哈哈~
//假設從-n這n個數中生成m個不重複的數,且n小於int的表示範圍
//總體思想是一開始每個數被選中的概率是m/n,於是隨機乙個數模n如果餘數小於m則輸出該數,同時m減
//否則繼續掃瞄,以後的每個數被選中的概率都是m/(n-i)
[cpp]view plain
copy
print?
void random_generate(int n, int m)
i++;
} while(++i<=n)printf("%d ",i); }
void random_generate(int n, int m){ int i=1,t,remain;
while(n-i>m)
{ t = rand()%(n-i);
if(t
(wiki關於隨機數的介紹
解答1:
54張牌分成3等份,共有m=(c54取18)*(c36取18)*(c18取18)種分法。
其中大小王在同乙份的分法有n=(c3取1)*(c52取16)*(c36取18)*(c18取18)種。
因此所求概率為p=n /m=17/53。
解答2:
不妨記三份為a、b、c份。大小王之一肯定在某乙份中,不妨假定在a份中,概率為1/3。然後a份只有17張牌中可能含有另一張王,而b份、c份則各有18張牌可能含有另一張王,因此a份中含有另一張王的概率是17/(17+18+18)=17/53。
也因此可知,a份中同時含有大小王的概率為1/3 * 17/53。
題目問的是出現在同乙份中的概率,因此所求概率為3*(1/3 * 17/53)=17/53。
7、a和b2人投硬幣,正面a得1元,反面b得一元.起始時a有1元,b有100元.
遊戲持續進行,直到其中1人破產才終止.
問:
1.如果硬幣正反概率相同,遊戲的期待長度(expected duration)是幾次投擲?
2.如果硬幣是不公正的,正面概率為p,反面概率為q.(p+q=1), 那麼遊戲的期待長度(expectedduration)是幾次投擲?
答案還沒整理
8、完美2011.10.16筆試題
:2d平面上有乙個三角形abc,如何從這個三角形內部隨機取乙個點,且使得在三角形內部任何點被選取的概率相同。
在二維座標系中可以用座標(x,y)來表示圖形中的乙個點。如下圖只要能夠在各個帶雙向箭頭的圖之間的點能夠建立一一對映即可。如把乙個長方形(如正方形)的點對映到另乙個長方形的點只要把座標做相應的放大縮小即可。如把長方形的點對映到乙個直角三角形,只要將長方形右上部份的三角形的點對映到對稱的左下角的三角形的點即可。而直角三角形對映到一邊平行於x軸的三角形的對映只要做x軸相應的偏移即可。而任意三角形可以分割成兩個其中有一邊平行於x軸的三角形。說的不是很清楚,具體的對映方法可以認真思考並寫出公式。
9、平均要取多少個(0,1)中的隨機數才能讓和超過1。答案: e 次, 其中e是自然對數的底
10、程式設計之美:金剛坐飛機問題
如果自己票上寫的座位沒被佔就按照座位坐,被佔了就變身成金剛,隨便找地兒坐。問第i個人坐在自己座位的概率是多少?
1..n一共n個座位,為了方便計算起見,我們做乙個變換
變換1:金剛的票上的座位是最後乙個,也就是第n個,其餘人的票和座位再按照原先的順序排列成1..n-1。
這樣並不影響最終的概率,因為如果
1)金剛坐在自己的位置上,那麼大家同樣都是肯定坐在自己的位置上。
2)如果金剛坐在第i個位置(非他票上的座位)上,那麼前i-1個人會坐在自己的位置上,與變換前相同,而第i個人肯定不會坐在自己的位置上,他會在變換前的金剛的座位再加上i+1..n的集合中隨機挑乙個座位,這也有變換前相同,他挑的座位對於後面人的影響也是與變換前相同的。
設f(i,n)為新的n個座位的排列中第i個人坐到自己位置上的概率,那麼舊排列中第i個人坐到自己位置的概率就是
f(i,n) i
f(i-1,n) i>j;
j為金剛票上的座位
那麼我們現在來計算f(i,n),後面的討論全部基於變換後的排列。
對於乘客i,金剛的選擇會造成3種情況,假設金剛選擇的是j,分別為ij,概率分別為(n-i)/n,1/n,(i-1)/n。
如果i如果i=j,概率為0
如果i>j,那麼前j-1個人肯定坐在自己的位置上,而第j個人就變身成了金剛,這樣可以看做他就是金剛,他原來的座位就是n。
變換2:前j-1個人是打醬油的,跟後面的事件無關了,因為金剛在j上,所以第j個人變成了金剛2,他的票號是最後乙個,j+1..n-1號乘客成了新的受害者,將j+1..n-1從1開始重新編號,座位數變成n-j
故第i個人坐在原來座位的概率為f(i-j,n-j)
所以概率為
綜上 有
最後的結果是
f(i,n) i
f(i-1,n) i>j;
j為金剛票上的座位
常見的概率相關面試題
在筆記題中概率相關的數學題,也有部分程式設計題,出現的還是挺多的。概率在生活中的應用較多,同時也可以綜合考查面試者的思維能力 應變能力 數學能力。在這裡整理了一些概率相關的筆試題和大家分享,此文不涉及程式設計題,都是一些和生活相關且很有趣的概率題。所有的分析都和背景顏色設定一樣了,大家先思考,然後選...
兩道概率面試題
問題一 一根一公尺長的繩子,隨機斷成三段 求最短的一段的期望長度以及最長的一段的期望長度。分析 這道題實際是一道純粹的概率題,沒有太多技巧。自己有推導,但是概率論忘得差不多了,退出來的概率有點詭異 以後補充一下知識,再推導。先放一下 陳利人 給出的答案吧,比較簡略 有時間,我會補充乙個詳細的。問題二...
java面試題 有關於繼承的面試題
面試題 1,方法過載和方法重寫的區別?方法過載能否改變返回值型別?方法過載是在本類內方法的定義一樣,引數型別,引數個數不同,返回值型別不同 方法重寫是指子類的方法定義和父類的方法定義相同。其引數型別,引數個數,返回值型別都必須相同 方法過載能否改變返回值型別,因為與返回值無關。2,this與supe...