問題**《程式設計之美》4.1 問題2
問題描述:
現在有一班飛機要起飛了。乘客們準備按機票號碼(1,2,3,...,n)依次登記,突然來了只大猩猩(對,他叫金剛),也有飛機票,但是他插隊第乙個登上了飛機。然後隨意的選了乙個座位坐下。
現在乘客們雖然感到憤怒,但還是以「和諧」為重,如果自己的位置沒有被占領,就趕緊坐下,如果自己的位置被別人(或金剛同志)佔了,就隨機的選擇另乙個位置坐下,不再挪動位置。
這種情況下,第i個乘客(除去金剛同志)坐到自己原機票位置的概率是多少??
問題解答:
網上有書上的掃瞄版
沒必要想的太複雜了
當n>i 時
第i個人坐到自己位置的概率是百分之百
當n =i 時
第i個人坐到自己位置的概率是0
當1<=n可以理解為,因為金剛坐在第n個人的位置上,當第n個人上飛機時,就必須在剩餘的(n-n+1)個位置中選乙個,
1) 如果他選了金剛的那個位置,那麼以後的人都可以自己坐自個的位置;---------------這個概率是1/(n-n+1)
2) 如果他不選金剛自身的那個位置,那麼他就可以搶占了別人的位置,假設為j(就是n+1之後的所有位置,包括n+1),效果等同於「金剛」佔搶了位置j.
即f(n) = (1/(n-n+1)) *(1+f(n+1)+f(n+2)+f(n+3)+.....+f(n))
突然明白了~~~~
當 n < i 時
f(n) = 1/(n-n+1)*(1+f(n+1)+f(n+2)+f(n+3)+.....+f(n)),
即(n-n+1)*f(n) = 1+f(n+1)+f(n+2)+f(n+3)+.....+f(n) ------------------等式1
如果(n+1) < i
也有f(n+1) = 1/(n-n)*(1+f(n+2)+f(n+3)+.....+f(n))
即 (n-n)*f(n+1) = 1+f(n+2)+f(n+3)+.....+f(n) ------------------------等式2
等式1和等式2相減,可得到
當 (n+1) < i 時
f(n) = f(n+1)
由此可知,當1<=n金剛坐在第n個位置,與金剛坐在第j個位置(n
故f(n) = f(n+1) = .....= f(i-1)
求f(i-1)就簡單了哦~
金剛坐了第(i-1)個位置,這種情況下,第(i-1)個人只要不坐在第i個位置即可。
則第i個人坐在自己位置的概率為
1-1/(n-i+2) = (n-i+1)/(n-i+2)
金剛坐飛機問題
題目見程式設計之美4.1 大體是這樣的 如果自己票上寫的座位沒被佔就按照座位坐,被佔了就變身成金剛,隨便找地兒坐。問第i個人坐在自己座位的概率是多少?1.n一共n個座位,為了方便計算起見,我們做乙個變換 變換1 金剛的票上的座位是最後乙個,也就是第n個,其餘人的票和座位再按照原先的順序排列成1.n ...
程式設計之美4 1 金剛坐飛機問題
問題描述 有一班飛機將要起飛,乘客們正準備按機票號碼依次排隊登記。突然來了乙隻大猩猩。他也有飛機票,但是他插隊第乙個登上了飛機,然後隨意地挑了乙個座位坐下了。其他乘客的反應如下 1 乘客們都很生氣,他們也隨意找位置坐下,並堅決不讓座給其他乘客 2 乘客們雖然很憤怒,但還是以 和諧 為重,如果自己的座...
《程式設計之美》學而思 金剛坐飛機
金剛坐飛機 2015 11 2 flyfish 引用自 程式設計之美 國外有乙個諺語 問 體重800 磅的大猩猩在什麼地方坐?答 它愛在哪兒坐就在哪兒坐。這句諺語一般用來形容一些 強人 並不遵守大家公認的規則,所以要對其行為保持警 惕。現在有一班飛機將要起飛,乘客們正準備按機票號碼 1,2,3,n ...