金剛坐飛機問題

2021-05-21 18:02:57 字數 1364 閱讀 2075

問題**《程式設計之美》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 ...