1. 程式人生 > 其它 >學習筆記——概率期望

學習筆記——概率期望

概率期望學習筆記

概率期望

省流:期望 \(=\) 概率 \(\times\) 權值

好,開始看題。

1.

2.

3.P1654 OSU!

前置知識
\((\alpha+1)^2=\alpha^2+2\times \alpha +1\)
\((\alpha+1)^3=\alpha^3+3\times \alpha ^2+3\times \alpha +1\)

題目要求長度 \(n\)\(0-1\) 串中 \(1\) 串長度的立方期望,考慮分步驟求解。

1.前 \(i\) 位中第 \(i\) 位為 \(1\) 的線性期望

顯然是由上一位得來,只考慮第 \(i\) 位是 \(1\) 的情況,那麼線性期望 \(x_1\)

為:

\[x_1(i)=(x_1(i-1)+1)\times p_i \]

2.前 \(i\) 位中第 \(i\) 位為 \(1\) 的平方期望

同上一問,依舊是隻考慮第 \(i\) 位是 \(1\) 的情況,注意平方的期望與期望的平方存在差異,不能由第一問的結果直接得到。

\[x_2(i)=(x_2(i-1)+2\times x_1(i-1)+1)\times p_i \]

3.前 \(i\) 位中第 \(i\) 位為 \(1\) 的立方期望

\[x_3(i)=(x_3(i-1)+3\times x_2(i-1)+3\times x_1(i-1)+1)\times p_i \]

4.得解

第三問的結果仍不能作為答案,原因是我們只考慮最後一位是 \(1\)

的情況,答案實際為前 \(n\) 位的總和,這裡需要分兩部分,成功連線的概率是 \(p_i\),反之概率是 \(1-p_i\),於是有:

\[\begin{aligned} f(i)&=(f(i-1)+3\times x_2(i-1)+3\times x_1(i-1)+1)\times p_i+f(i-1)\times (1-p_i)\\ &= f(i-1)+(3\times x_2(i-1)+3\times x_1(i-1)+1)\times p_i \end{aligned}\]

發現最終答案與第三問無關,可以刪去直接求最後結果。

int n;
db p;
db x1[maxn],x2[maxn],x3[maxn];
int main(){
    n=read();
    for(int i=1;i<=n;i++){
        scanf("%lf",&p);
        x1[i]=(x1[i-1]+1)*p;
        x2[i]=(x2[i-1]+x1[i-1]*2+1)*p;
        x3[i]=x3[i-1]+(x1[i-1]*3+x2[i-1]*3+1)*p;
    }
    printf("%.1lf\n",x3[n]);
    return 0;
}