20200911 day6 數論復習(四)期望,組合數,概率


1 期望

1.期望的定義

每次可能結果的概率乘以其結果的總和

2.期望的性質

\(X\)是隨機變量,\(C\)是常數,則\(E(CX)=C\times E(X)\)

證明:設\(X\)的多個隨機變量(即能取到的數值為)\(\{{a_{i}}\}\),對應出現概率為\(p_i\),則求期望的式子是:

\[E(X)=\sum_{i=1}^n(a_ip_i) \]

而隨機變量變為\(CX\),即\(\{Ca_i\}\)時,求解式子變為:

\[E(CX)=\sum_{i=1}^n(Ca_ip_i)=C\sum_{i=1}^n(a_ip_i)=CE(X) \]

以下式子證明類似:

  1. \(X,Y\)是任意兩個隨機變量,則有\(E(X+Y)=E(X)+E(Y)\)
  2. \(X,Y\)是兩個相互獨立的隨機變量,有\(E(XY)=E(X)E(Y)\)
  3. \(C\)為常數,有\(E(C)=C\)

3.期望與均值

比如擲骰子的均值,計算方法:
【你必須親自擲骰子,然后才能知道,比如】

\[\dfrac{1+5+5+6+3+3}{6}=3.833333... \]

而期望無需親自操作 如:

\[E(X)=1\times\dfrac{1}{6}+2\times \dfrac{1}{6}+...+6\times \dfrac{1}{6}=\sum_{i=1}^6(\dfrac{1}{6}i) \]

該數值恆定

在對多個均值求均值后,兩者就無限接近了。

4.例題1

題面

甲乙兩人賭博,丙作為裁判,五局三勝,贏的人可以獲得100元,比賽進行到第四局的時候甲勝了2局,乙勝了1局,但這時賭場遇到了查封,丙逃走。這時甲乙應該如何分配100元?(每局一定有勝負)

A 平分

A勝利更多,已經拿到賽點。他顯然不願意

B 按照獲勝的比例

繼續進行一輪的話,

50%:甲贏了,拿走100元。

50%:乙贏了,繼續比賽。

那如果下一局乙贏了,接下來兩人又有50%的概率獲勝,都可能拿走100元,還咋分?

C 學會期望的人應該這樣做(吧)

假設甲最終輸了,那么他是在什么概率下輸的呢?

\(\dfrac{1}{2}\times \dfrac{1}{2}=\dfrac{1}{4}\)

他實際上只有四分之一的概率輸。

顯而易見,因為每局都能分出勝負,所以他有 \(\dfrac{3}{4}\)的概率贏掉。

那么情況就簡單了,我們根據他們的勝率來分錢。

甲分 \(100\times \dfrac{3}{4}=75\)

乙分 \(100\times \dfrac{1}{4}=25\)

5.例題2

題面

已知3個紅包中有一個1000元的,兩個500元的。

抽取了一個后,隨機打開剩下紅包中的一個,里面裝着500元錢。

詢問:如果同意你們用手上的紅包換取未打開的紅包,你會換嗎?

題解

下面定量計算一下:

設為\(A,B,C\)三個紅包

當員工選擇了\(A\)紅包后,就將三個紅包分為兩組,第一組為\(A\)紅包,第二組為\(B,C\)紅包。很明顯1000元在第一組的概率為 \(\dfrac{1}{3}\),在第二組的概率為 \(\dfrac{2}{3}\),而面試官打開了B紅包,發現B為500元紅包,這里其實是幫助員工在第二組里篩選掉了一個錯誤答案,所以1000元在C紅包的概率其實為 \(\dfrac{2}{3}\)

所以就要換嘍

6.例題3

設一張彩票為2元,每售1000000張開獎,假設中獎號碼為 342356,則每張彩票有一個對應的六位數號碼,獎次如下:(中獎不疊加)

末位相等,安慰獎:獎勵4元,中獎概率0.1

后兩位相等,幸運獎:獎勵20元,中獎概率0.01

后三位相等,手氣獎:獎勵200元,中獎概率0.001

后四位相等,一等獎:獎勵2000元,中獎概率0.0001

后五位相等,特等獎:獎勵20000元,中獎概率0.00001

我們來用簡單的概率知識來計算一下,對於每一位購買彩票的用戶,公司可能支出為:

\(0.1\times 4+0.01\times 20+0.001\times 200+0.0001\times 2000+0.00001\times 20000=1.2\)

也就是說,公司期望對每個人賺0.8元。

每1000000張,就是800000元!

如果6位均相等,給200000元的話,公司會少賺200000元!!(可以計算一下)

7.例題4

題面

拋一枚硬幣,如果是反面就繼續拋,問拋 出正面的期望次數。 ]

(期望話可以理解為概率\(\times\)代價, 比如說小A投球中的概率為\(\dfrac{1}{3}\),那么投三 個球中的期望就是\(\dfrac{1}{3}\times 3=1\)

題解

\(x=1+\dfrac{1}{2}\times 0+\dfrac{1}{2}\times x\)發現遞歸下去了。

解這類方程其實需要運用極限的思想,但 是一種簡單的解法是直接移項整理解出x=2 即可

這個期望dp最好的例子

附上我的證明

\(C_i=a_ib_i,a_i=i,b_i=\left( \dfrac{1}{2}\right)^i\),則:

\[S=\sum C_i=\sum a_ib_i=1\times\left( \dfrac{1}{2}\right)+2\times \left( \dfrac{1}{2}\right)^2+...+n\left( \dfrac{1}{2}\right)^n \]

\[\dfrac{1}{2}S=1\times\left( \dfrac{1}{2}\right)^2+2\times \left( \dfrac{1}{2}\right)^3+...+n\left( \dfrac{1}{2}\right)^{n+1} \]

\[T=S-\dfrac{1}{2}S=1\times \left( \dfrac{1}{2}\right)+\left( \dfrac{1}{2}\right)^2+\left( \dfrac{1}{2}\right)^3+...+\left( \dfrac{1}{2}\right)^n-n\left( \dfrac{1}{2}\right)^{n+1} \]

\[T=S-\dfrac{1}{2}S=\left[ \left( \dfrac{1}{2}\right)+\left( \dfrac{1}{2}\right)^2+\left( \dfrac{1}{2}\right)^3+...+\left( \dfrac{1}{2}\right)^n\right]-n\left( \dfrac{1}{2}\right)^{n+1} \]

\[M=\left( \dfrac{1}{2}\right)+\left( \dfrac{1}{2}\right)^2+\left( \dfrac{1}{2}\right)^3+...+\left( \dfrac{1}{2}\right)^n=1-\left( \dfrac{1}{2}\right)^{n} \]

\[T=S-\dfrac{1}{2}S=M-\dfrac{n}{2}\left( \dfrac{1}{2}\right)^{n}=1-\left(\dfrac{n}{2}+1\right)\left( \dfrac{1}{2}\right)^{n} \]

\[S=2-\left(n+2\right)\left( \dfrac{1}{2}\right)^{n} \]

8.例題5-UVA10288

前置知識

概率為\(p\)的事件期望\(\dfrac{1}{p}\)次后發生

\(p\):在\(x\)次獨立重復事件中,該事件發生\(xp\)次;

\(\dfrac{1}{p}\):該事件發生\(x\)次,所需獨立重復事件發生\(\dfrac{x}{p}\)次。

題面

每張彩票上有一個漂亮圖案,圖案一共\(n\)種,如果你集齊了這\(n\)種圖案就可以兌換大獎。

現在請問,在理想(平均)情況下,你買多少張彩票才能獲得大獎的?

\(n\leq33\)

分析

設我們已經有了\(k\)個圖案,則得到下一張新的牌的概率為\(\dfrac{n-k}{n}\).【前置知識】得到下一張牌的期望是\(\dfrac{n}{n-k}\)

定義\(E(i)\)表示\(i-1\)到第\(i\)張牌的期望,根據期望的線性性質可得:

\[E(X)=\sum_{i=1}^nE(i) \]

\[E(X)=\sum_{i=1}\dfrac{n}{n-i} \]

\[E(X)=n\sum_{i=1}^n\dfrac{1}{i} \]

模擬分數相加的過程,同分之后相加化簡。

9.例題6-高次期望-P1654

題面

一共有n次操作,每次操作只有成功與失敗之分,成功對應1,失敗對應0,n次操作對應為1個長度為n的01串。在這個串中連續的 \(X\)\(1\) 可以貢獻 \(X^3\) 的分數,這\(X\)個1不能被其他連續的1所包含(也就是極長的一串1,具體見樣例解釋)

現在給出\(n\),以及每個操作的成功率,請你輸出期望分數,輸出四舍五入后保留1位小數。

樣例

輸入

3
0.5 
0.5 
0.5

輸出

6.0

說明

000分數為0,001分數為1,010分數為1,100分數為1,101分數為2,110分數為8,011分數為8,111分數為27,總和為48,期望為48/8=6.0

\(N\leq 100000\)

題解

我們設\(E(X_{i})\)為在第 \(i\)個位置得的分數的期望

然后我們考慮 \(E(X_{i+1})\)\(E(X_{i})\)的關系

假設在\(i\)位置連續\(1\)串長度為 \(l\)的概率為 \(p_{l}\),在 \(i+1\)位置是 \(1\) 的概率為\(P\) ,那么對於每一個單獨的 \(l\) 它都有\(P\)的概率對分數產生 \((3l^{2}+3l+1)\)的額外貢獻

我們把所有可能的 \(l\) 一起考慮,就可以得到這個式子

\[E(X_{i+1})=E(X_{i})+\sum_{l=0}^{i}p_{l}\times P(3l^{2}+3l+1) \]

然后我們可以發現

\(\sum_{l=0}^{i}p_{l}l^{2}=E(l^{2})\)

\(\sum_{l=0}^{i}p_{l}l=E(l)\)

於是我們將式子轉化為
\(E(X_{i+1})=E(X_{i})+P\times(3E(l_{i}^{2})+3E(l_{i})+1)\)

然后我們就成功得出了分數的期望

同時我們也要維護\(E(l)\)\(E(l^{2})\)

\(l\)\(l^{2}\)都有 \(1\)~\(P\) 的概率變成0,\(P\)的概率增加

增加的量可以用上面類似的方法算出

\[E(l_{i+1})=P\times(E(l_{i})+\sum_{l=0}^{i}p_{l})=P\times(E(l_{i})+1) \]

\[E(l_{i+1}^{2})=P\times(E(l_{i}^{2})+\sum_{l=0}^{i}p_{l}(2l+1))=P\times(E(l_{i}^{2})+2E(l_{i})+1) \]

由此我們就得出了全部的遞推關系

其實三個量完全不用用數組存,只要改變一下轉移順序就行了

代碼

#include <cstdio>
#include <algorithm>
using namespace std;

int n;
double ex,el,el2,P;

int main(){
    scanf("%d",&n);
    while(n--){
        scanf("%lf",&P);
        ex=ex+P*(3*el2+3*el+1);
        el2=P*(el2+2*el+1);
        el=P*(el+1);
    }
    printf("%.1f",ex);
    return 0;
}

10.例題7-P4450

題面

\(n\)個數\(1\)~\(n\),第\(k\)次取數需要\(k\)元,每次取數對於所有數概率均等(\(\dfrac{1}{n}\)),問取完\(n\)個數的期望花費

首先第一步很好轉化吧,設用了\(x\)步,則花費為

\[\sum_{i=1}^{x}i=\dfrac{x^2+x}{2} \]

現在就轉換成要求上式的期望。

有了前面那題的基礎現在考慮起來就簡單了

維護一個線性期望\(a\),平方期望 \(f\)(都是數組)

\(a[i]\)表示找完\(i\)個數之后還需要的次數的期望

\(f[i]\)表示找完\(i\)個數之后還需要的次數平方的期望

不難想到最后的答案是 \(\dfrac{a[0]+f[0]}{2}\)

下面就開始考慮狀態轉移(dp?)

先來考慮 \(a[i]\)

\[a[i]=? \]

情況1,買到買過的

買過的是i個,概率為 \(\dfrac{i}{n}\),花費就相當於記在買到i時候的賬上了(從\(i\)賬上查),得到花費為 \(a[i]+1\)

可得到式子\(\dfrac{i}{n}(a[i]+1)\)

情況2,買到沒買過的

沒買過的是\(n−i\)個,概率為 \(\dfrac{n-i}{n}\),花費就相當於記在買到\(i+1\)時候的

賬上了(從\(i+1\)賬上查),因為當前多買了一個,得到花費為 \(a[i+1]+1\)

可得到式子 \(\dfrac{n-i}{n}(a[i+1]+1)\)

兩種情況一合並,得:

\(a[i]=\dfrac{i}{n}(a[i]+1)+\dfrac{n-i}{n}(a[i+1]+1)\)

這時就發現了,推着推着出現了\(i+1\),自然而然的想到了倒推

邊界 \(a[n]=0\)都得全了還買什么

但是這個式子固然能做,是不是麻煩了點?

那么把它化簡后發現:

\(a[i]=a[i+1]+\dfrac{n}{n-i}\)

然后考慮\(f[i]\)

跟推a的時候一個思路,新的或舊的,唯一就把平方拆開就行嘍

\(f[i]=\dfrac{i}{n}(f[i]+2\times a[i]+1)+\dfrac{n-i}{n}(f[i+1]+2\times a[i+1]+1)\)

倒推

邊界 \(f[n]=0\)

可算,但麻煩

化簡

OK既然上面講了寫式子下面就說說化簡的事吧~

\[f[i]=\frac{i}{n}(f[i]+2\times a[i]+1)+\frac{n-i}{n}(f[i+1]+2\times a[i+1]+1) \]

把第一個括號拆成 \(f[i]\)\(2\times a[i]+1\)兩部分

然后把

\[\frac{i}{n}\times f[i] \]

給移到左邊,合並得:

\[\frac{n-i}{n}f[i]=\frac{i}{n}(2\times a[i]+1)+\frac{n-i}{n}(f[i+1]+2\times a[i+1]+1) \]

然后兩邊同除 \(\dfrac{n-i}{n}\)

\[f[i]=\frac{i}{n-i}(2\times a[i]+1)+f[i+1]+2\times a[i+1]+1 \]

就簡單一些了。

代碼中精度轉換注意一下,不要丟失

代碼

#include<cstdio>
using namespace std;
double a[10005],f[10005];
int main()
{
    int n;
    scanf("%d",&n);
    a[n]=0;
    f[n]=0;
    for(int i=n-1;i>=0;i--)
    {
        a[i]=a[i+1]+1.0*n/(n-i);
        f[i]=1.0*i/(n-i)*(2*a[i]+1)+f[i+1]+2*a[i+1]+1;
    }
    printf("%.2lf\n",(f[0]+a[0])/2);
    return 0;
} 

11. 條件期望

【考察概率較低,感性理解】

假設你不斷扔一個等概率的六面骰子,直到扔出6停止。求在骰子只出現過偶數的條件下扔骰子次數的期望。

細細的考慮一下,題目所說的並不是指出現奇數就pass再扔,而是出現奇數就終止了操作!!!

所以把條件這樣轉換后,就可以得到正確答案: \(\dfrac{3}{2}\)

那我把題意轉換一下:

假設你不斷扔一個等概率的六面骰子,直到扔出\(1,3,5,6\)停止。求骰子最后一次是6的次數的期望。



免責聲明!

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



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