ybt金牌導航1 1 2 乘坐電梯

2021-10-14 07:52:17 字數 1781 閱讀 8332

有乙個電梯,有 n 個人要進電梯。

對於每一秒,排在最前面的人有 p 的機率會進電梯(不會再出來),否則不進,別的人都不進。

問你 t 秒後,在電梯上的人的期望數量。

這道題我們先設 fi,

jf_

fi,j

​ 為在第 i

ii 秒之後有 j

jj 個人在電梯上的概率。

那首先初始化很顯然,f0,

0=

1f_=1

f0,0​=

1。那接著就是轉移。

首先,對於普通的,我們從 fi,

jf_

fi,j

​ 可以這樣轉移:fi+

1,j+

1=fi

+1,j

+1+f

i,j×

pf_=f_+f_\times p

fi+1,j

+1​=

fi+1

,j+1

​+fi

,j​×

p 和 fi+

1,j=

fi+1

,j+f

i,j×

(1.0−p

)f_=f+f_\times (1.0-p)

fi+1,j

​=fi

+1,j

+fi,

j​×(

1.0−

p)。(就是對於新的一秒,最前面的人走上了電梯,或者沒有走上電梯)

那如果已經沒有人在等著上電梯了呢?(或者說所有人都上了電梯)

那因為上了電梯就不會下來(這話說的有點恐怖1

),那所有人還是在電梯上,也不會有人進來。(因為你總不能說多了個人吧,佇列裡多了乙個人2

)所以,對於 fi,

nf_

fi,n

​,我們可以讓 fi+

1,n=

fi+1

,n+f

i,

nf_=f_+f_

fi+1,n

​=fi

+1,n

​+fi

,n​。

但是我們這個現在求的是期望,不是概率。

那我們知道期望就是可能結果的概率乘以其結果的總和,那我們就直接列舉 ft,

if_

ft,i

​,然後 ans

=ans

+ft,

i∗

ians=ans+f_*i

ans=an

s+ft

,i​∗

i。那 a ns

ansan

s 就是我們要的答案了。

#include

#include

using

namespace std;

int n, t;

double p, f[

2001][

2001

], ans;

intmain()

f[i +1]

[n]+

= f[i]

[n];

//如果所有的人都已近電梯,就不貴出現進電梯的情況

}for

(int i =

1; i <= n; i++

)//然後最後根據概率算出期望

ans +

= f[t]

[i]* i;

printf

("%lf"

, ans)

;return0;

}

柯南第20集:電梯殺人事件 ↩︎

another,懂? ↩︎

期望 乘坐電梯(金牌導航 期望 2)

有n個人,對於沒乙個單位時間有p的概率最前面的1個人進電梯,有 1 p 的概率不進,問你t個單位時間後,電梯中的期望人數 1 0.50 1 樣例輸出 1 0.5樣例輸入 2 1 0.50 4 樣例輸出 2 0.9375 樣例輸入 3 4 0.20 2 樣例輸出 3 0.41 n t 2000 1 l...

乘坐電梯的問題

題目內容 說明 1 假設最開始電梯在0層,n個人從第0層進電梯,中間不再增添新乘客 2 n個人都到達各自的樓層後,電梯需要回到0層 3 到同一樓層的人不管有幾人,電梯開門的時間總共只需要5秒.輸入格式 輸入資料首先包含乙個整數n 0 n 10 表示電梯內的人數 然後是n個人要到的樓層si 1 si ...

乘坐電梯注意事項

而針對眾多的疑問,記者也聯絡到了當事人周先生,他向記者講述了整件事情發生的經過。9月24號中午1點多,周先生把岳父從老家接到了岑鞏縣城。那天我接爸爸下來過中秋節,一起吃飯,然後爸爸就說要去哪個親戚家看親戚,讓我一起去看一下,正好那裡也是我上班的地方。周先生說。周先生是這個小區物業公司的電工,平時也做...