hdu4554 A Famous Game 概率期望
題面
題意:n個球,2種顏色,可能有0~n個紅球,每種情況的概率相同。現在從箱子里取出了$p$個球,其中有$Q$個是紅球,問現在再取一個球是紅球的概率為多少?
題解:因為0 ~ n的概率相同,所以每個球是紅色的概率不互相獨立。設A表示下一個球是紅色這個事件,B表示取了$p$個球,有$Q$個紅球這個事件,$N_{k}$表示一開始袋子里有$k$個紅球。那么我們就是要求$P(A | B)$
$$P(A|B) = \frac{P(AB)}{P(B)} = \frac{\sum_{k = 0}^{n} P(AB | N_{k}) P(N_{k})}{\sum_{k = 0}^{n}P(B | N_{k}) P(N_{k})}$$
$$= \frac{\sum_{k = 0}^{n} P(A | BN_{k}) P(B | N_{k}) P(N_{k})}{\sum_{k = 0}^{n} P(B | N_{k})}$$
分析可知:$$P(A | BN_{k}) = \frac{k - Q}{N - p}, P(N_{k}) = \frac{1}{N + 1}, P(B | N_{k}) = \frac{C_{k}^{Q} C_{N - k}^{p - Q}}{C_{N}^{p}}$$
代入原式:
$$\frac{\sum_{k = 0}^{N} \frac{k - Q}{N - p} \frac{C_{k}^{Q} C_{N - k}^{p - Q}}{C_{N}^{p}} \frac{1}{N + 1}}{\sum_{k = 0}^{N} \frac{C_{k}^{Q} C_{N - k}^{p - Q}}{C_{N}^{p}}\frac{1}{N + 1}}$$
$$=\frac{\sum_{k = 0}^{N} \frac{k - Q}{N - p} \frac{C_{k}^{Q} C_{N - k}^{p - Q}}{C_{N}^{p}} }{\sum_{k = 0}^{N} \frac{C_{k}^{Q} C_{N - k}^{p - Q}}{C_{N}^{p}}}$$
$$=\frac{\sum_{k = 0}^{N} (k - Q) \frac{C_{k}^{Q} C_{N - k}^{p - Q}}{C_{N}^{p}} }{\sum_{k = 0}^{N} (N - p) \frac{C_{k}^{Q} C_{N - k}^{p - Q}}{C_{N}^{p}}}$$
先嘗試對分子進行化簡:
$$\frac{k!}{Q!(k - Q)!} \frac{(N - k)!}{(p - Q)! (N - k - p + Q)!}(k - Q)$$
觀察到第一個分式的分母可以和$(k - Q)$約掉得到$\frac{k!}{Q!(k - Q - 1)!}$.
如果能把這個式子也變成組合數的形式,會更有利于化簡,觀察到$(k - Q - 1)!$其實對應的是$C_{k}^{Q + 1}$,因此我們嘗試把這個部分表示為$C_{k}^{Q + 1}$,那么下面就要多乘一個$Q + 1$,相當于給整個式子除了一個$Q + 1$,因此我們在末尾再把$Q + 1$乘回來,于是得到原式為:
$$\frac{\sum_{k = 0}^{N} C_{k}^{Q + 1} C_{N - k}^{p - Q} (Q + 1)}{\sum_{k = 0}^{N} C_{k}^{Q} C_{N - k}^{p - Q}(N - p)}$$
$$\frac{\sum_{k = 0}^{N} C_{k}^{Q + 1} C_{N - k}^{p - Q}}{\sum_{k = 0}^{N} C_{k}^{Q} C_{N - k}^{p - Q}} \frac{Q + 1}{N - p}$$
因為有$$\sum_{k = 0}^{s} C_{k}^{n} C_{s - k}^{m} = C_{s + 1}^{n + m + 1}$$
原因:可以看做是有$s + 1$個物品,要從里面取$n + m + 1$個,這個式子就相當于是在枚舉第$n + 1$個取走了第$k + 1$。然后再在前$k$個中取$n$個,在后$s + 1 - k - 1 = s - k$中取$m$個。
所以對原式化簡得到:$\frac{Q + 1}{p + 2}$
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define R register int 4 5 void work() 6 { 7 double n, p, q; int tot = 0; 8 while(scanf("%lf%lf%lf", &n, &p, &q) != EOF) 9 printf("Case %d: %.4lf\n", ++ tot, (q + 1) / (p + 2)); 10 } 11 12 int main() 13 { 14 freopen("in.in", "r", stdin); 15 work(); 16 fclose(stdin); 17 return 0; 18 } View Code?
轉載于:https://www.cnblogs.com/ww3113306/p/10186811.html
總結
以上是生活随笔為你收集整理的hdu4554 A Famous Game 概率期望的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 时序逻辑电路的基础知识(结合Verilo
- 下一篇: 机器学习——人工神经网络之发展历史(神经