收集郵票 [機率]

收集郵票 [機率]

失蹤人口迴歸系列2333ios

放一個洛谷連接spa

當年學OI的時候仍是在bzoj上作這道題,困擾了當時只會高中機率知識的我好長時間。code

如今我學了概統了,能夠吊錘這道題了!ci

設指望張數爲\(X​\),則答案爲\(E(\frac{X+X^2}{2})=\frac{EX+EX^2}{2}​\),須要計算\(EX​\)\(EX^2​\)get

考慮已經有k-1種不一樣郵票,要買到第k種,就是有\(\frac{k-1}{n}\)的機率失敗\(\frac{n-k+1}{n}\)的機率成功,是一個幾何分佈,因此可知\(X=X_1+X_2+…+X_n,\ X_k \sim G(\frac{n-k+1}{n})\)it

對於幾何分佈\(X\sim G(p)\),有\(EX=\frac{1}{p}, \ var(X)=\frac{1-p}{p^2}\)io

因此,\[EX=E(\sum_{i=1}^n X_i) = \sum_{i=1}^n EX_i = n\sum_{i=1}^n \frac{1}{i}\]
\[ \begin{align*} EX^2 & = E(\sum X_i^2 + \sum_{i \neq j}X_i X_j) \\ &= \sum EX_i^2 + \sum_{i \neq j}E(X_i X_j)\\ &= \sum var(X_i)+(EX_i)^2 + \sum_{i \neq j}(EX_i)(E X_j)\\ &= \sum_{k=1}^n (\frac{2n^2}{k^2}-\frac{n}{k})+\sum_{i\neq j}\frac{n^2}{ij} \\ \end{align*} \]
(因爲\(X_i, X_j, i\neq j​\)獨立,因此\(E(X_iX_j)=(EX_i)(EX_j)​\)class

因此,\(ans = n^2\sum_{i=1}^n \sum_{j=i}^n \frac{1}{ij}​\),完成了!stream

代碼:im

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

int n;
int main() {
    cin >> n;
    double ans = 0, t = 0;
    for(int i=1; i<=n; i++) {
        t += 1.0/i;
        ans += 1.0/i * t;
    }
    ans *= n*n;
    printf("%.2f", ans);
}
相關文章
相關標籤/搜索