近年的
acm競賽中,數學期望問題常有涉及,在以前也常讓本人感到很頭疼,近來突然開竅,掌握了基本的分析方法,希望對大家有幫助。寫得淺薄,可能數學上不夠嚴謹,只供理解。
首先,來看下期望有啥基本的公式。
對離散型隨機變數
x,其概率為
p,有對隨機變數a、
b,有第二條式子是今天的主角,他表明了期望有線性的性質,簡單理解就是期望之間可根據關係,簡單運算(不嚴謹的理解)。
這就為我們解決乙個期望問題,不斷轉化為解決另外的期望問題,最終轉化到乙個已知的期望上。
舉乙個求期望最簡單的例子,見下圖。
假設有個人在
1號節點處,每一分鐘他會緣著邊隨機走到乙個節點或者在原地停留,問他走到
4號節點需要平均幾分鐘?
這是個簡單的期望問題,我們用
ei(i=1,2,3,4)
表示從i
號節點走到
4號節點的數學期望值。根據題意對
1號節點有
e1=(
1/3)
*e1+
(1/3
)*e2+
(1/3
)*e3+1 ①表示
他下一分鐘可以走到2或者
3或在原地
1,每個可能概率是
1/3 ,
注意是下一分鐘,故要加上1.
同理我們對節點2,
3同樣可以列出
e2=(1/3)*e1+(1/3)*e2+(1/3)*e4+1
②e3=(1/3)*e1+(1/3)*e3+(1/3)*e4+1 ③
那e4等於多少呢? 很明顯e4=0 ④,因為他就是要到點4
這樣上面1234式其實就是組成了一組方程組,解方程組就可得出e1!!,用高斯消元,複雜度是o(n^3)
從上述例子,我們可總結出如何解決期望類問題,根據題意,表示出各個狀態的期望(上例的ei,1234),根據概率公式,列出期望之間的方程,解方程即可。
下面看用上述思路如何解決一道題(poj2096)
原題見附件1。
題意簡述: 乙個人受僱於某公司要找出某個軟體的bugs和subcomponents,這個軟體一共有n個bugs和s個subcomponents,每次他都能同時隨機發現1個bug和1個subcomponent,問他找到所有的bugs和subcomponents的期望次數。
我們用e(i,j)表示他找到了i個bugs和j個subcomponents,離找到n個bugs和s個subcomponents
還需要的期望次數,這樣要求的就是e(0,0),而e(n,s)=0,對任意的e(i,j),1次查詢4種情況,沒發現任何新的bugs和subcomponents,發現乙個新的bug,發現乙個新的subcomponent,同時發現乙個新的bug和subcomponent,用概率公式可得:
e(i,j)=1+(i*j/n/s)*e(i,j)+(i*(s-j)/n/s)e(i,j+1)+
((n-i)*j/n/s)*e(i+1,j)+(n-i)*(s-j)/n/s*e(i+1,j+1);
這樣根據邊界就可解出所有的e(i,j),注意因為當我們找到n個bugs和s個subcomponents就結束,對i>n||j>s均無解的情況,並非期望是0.(數學上常見問題,0和不存在的區別)
那這題是否也是要用高斯消元呢? 用高斯消元得話複雜度是o(n^3),達到10^18 根本是不可解的!!
但其實,注意觀察方程,當我們要解e(i,j)的話就需要e(i+1,j),e(i,j+1),e(i+1,j+1), 一開始已知e(n,s),那其實只要我們從高往低乙個個解出i,j就可以了! 即可根據遞推式解出所有的e(i,j) 複雜度是o(n),10^6 ,完美解決。程式見附件2
從上面這道題,我們再次看到了解決期望問題的思路,而且是用到了遞推解決問題,其實可遞推的原因,當我們把各個狀態當成是乙個個節點時,概率關係為有向邊,我們可看到,可遞推的問題其實就是這個關係圖是無環的!!那必須要用方程組解決的問題其實就是存在環!!!! 而且我還要指出的是用高斯消元的時候,要注意誤差的問題,最好把式子適當的增大,避免解小數,否則誤差太大,估計也會卡題。
概率與期望 期望雜談
本文所涉及的概率與期望問題,僅建立在離散型隨機變數之上。連續性期望的計算要用到微積分,那是我不會的東西。說白了,數學期望其實就是隨機變數結果的平均值。乙個離散型變數的數學期望為該變數內每個取值的概率與其取值的乘積的總和。e x sum a p a 類似與於加權平均。1.設c是乙個常數,那麼有 e c...
概率期望整理
目錄貝葉斯公式 獨立事件 期望後序補充 公式 a b p a b p a p b 沒什麼好說的.兩個集合無交集,那麼他們的並集發生的概率就是兩個事件發生概率的和.如果兩個集合之間有交集,利用容斥.a b p a b p a p b p a b p a b dfrac 就是在事件b中事件a發生的概率....
概率期望 計數
1.cf398b 令 f i j 表示已經有i行j列滿足條件是期望需要多少次,那麼只要列舉下乙個點的位置即可。然後寫出來轉移,移項就可以得到 f i j 的表示式。2.cf605e 因為可以原地不動,所以乙個點必然會走到期望步數更少的點。考慮給點按照期望步數排序,那麼假如確定了排名的序列,就可以遞推...