條件概率全概率公式-Tribles


條件概率,全概率公式,貝葉斯公式

  條件概率:在另外一個事件 B 已經發生的條件下,事件 A 發生的概率叫做在 A 對於 B 的條件概率,記作 \(p(A|B)\)。顯然\(p(AB)=p(A|B)p(B)\)。於是有:\(p(A|B)=\frac{p(AB)}{p(B)}\)

  獨立事件:若事件 B 是否發生對事件 A 的概率沒有影響,即\(p(A|B)=p(A)\),則稱事件 A, B 相互獨立 (為獨立事件)。將前面那個式子代入,可以發現若兩個事件A和B獨立,則\(p(AB)=p(A)p(B)\)。換句話說,就是當有A的時候,B事件發生的概率等於無A的時候發生的概率(\(\frac{p(AB)}{p(A)}=\frac{p(B)}{p(\Omega)}\))。用維恩圖來理解:

維恩圖

​ 第一幅圖表示A,B獨立,即\(p(AB)=p(A)p(B)\)。而如果把B往內移動一點,顯然在有A事件發生的情況下,B事件發生的幾率更大了(\(p(AB)/p(A)>p(B)/p(\Omega)\))。因此A,B便不是獨立的了。把B往外移動一點也是如此。

​ 注意獨立事件和互斥事件的概念不同。互斥表示\(p(AB)=0\),獨立表示\(p(AB)=p(A)p(B)\)。也就是說,互斥表示兩個事件不能同時出現,獨立表示兩個事件沒有關系。兩個事件不能同時出現,表示兩個事件是有關系的,也就是說互斥一定不獨立

  完備事件組:若事件\(A_1,A_2,...,A_n\)滿足\((i)A_i\cap A_j=\emptyset\quad(ii)a_1\cap ...\cap a_n=\Omega\),那么它們就是完備事件組。

  全概率公式可以輕松推出:\(p(A)=\sum_{i=1}^{n}p(AB_i)=\sum_{i=1}^{n}p(A|B_i)p(B_i)\)(相當於一張大餅)。也有一些特殊形式:\(p(A)=p(AB)+p(A\bar{B})=p(A|B)p(B)+p(A|\bar{B})p(\bar{B})\)


有 n 個怪物,每只怪物只能活一天,但是每個怪物在那天有 pi 的概率繁殖 i 個怪物 (0 ≤ i < l,且\(\sum_{i=0}^{l-1}p_i=1\)),求 (n 個怪物時為第 0 天) 第 m 天所有怪物都掛的概率。(m, l ≤ 1000)。

​ 我們來看這道題:第m天所有怪物都掛的概率是第m天一個怪物系(也就是一個怪物和它的兒子)掛的概率的n次。以下討論在一個怪物系中的情況:

  記第k天所有怪物都掛的概率為\(f_k\),可以知道\(f_1\)就是第0天啥都不繁殖的概率,即\(f_1=p_0\)

  考慮k>1的情況,令事件A為所有怪物在第k天全掛,事件\(B_i\)為第0天怪物繁殖i個,可以看出\(B_0, B_1, ..., B_{l-1}\)\(\Omega\)的一個完備事件組。

  可以看出,\(p(B_i)=p_i\),事件\(A|B_i\)表示第一天有i個怪物,結果到第k天全掛了,相當於一直第0天有i個怪物,結果到第k-1天全掛了。這是一個子問題,相當於\(f_{k-1}^i\)!所以根據全概率公式可得:$$f_k=p(A)=\sum_{i=0}^{l-1}p(A|B_i)p(B_i)=\sum_{i=0}^{l-1}f_{k-1}^ip_i$$
  這個做法的精髓在於通過全概率公式發現重復子問題。

 1 #include <cstdio>
 2 using namespace std;
 3 
 4 const int maxday=1005, maxbirth=1005;
 5 int t, n, k, m;
 6 double f[maxday], p[maxbirth];
 7 
 8 int main(){
 9     scanf("%d", &t);
10     for (int tt=0; tt<t; ++tt){
11         scanf("%d%d%d", &n, &k, &m);
12         for (int i=0; i<n; ++i)
13             scanf("%lf", &p[i]);
14         f[1]=p[0];
15         for (int i=2; i<=m; ++i){
16             double now=1; f[i]=0;
17             for (int j=0; j<n; ++j, now*=f[i-1])
18                 f[i]+=now*p[j];
19         }
20         double ans=1;
21         for (int i=0; i<k; ++i) ans*=f[m];
22         printf("Case #%d: %.7lf\n", tt+1, ans);
23     }
24     return 0;
25 }

​ 全概率公式有一個好~基~友,叫做貝葉斯公式。全概率公式揭示了一般概率和條件概率之間的關系,而 Bayes 公式揭示了幾個條件概率之間的關系:

\(p(B_k|A)=\frac{p(A*B_k)}{p(A)}=\frac{p(A*B_k)}{\sum_{i-1}^np(A*B_i)}=\frac{p(A|B_k)p(B_k)}{\sum_{i=1}^np(A|B_i)p(B_i)}\)

​ (好累TwT……)

​ 注意最后面那個分數還可以約來着。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM