1. 程式人生 > 其它 >概率期望

概率期望

概率期望

這是一個挺大的東西,又涉及到dp,又涉及到數學,就不知道咋分類

同時,這也是我最菜的幾部分之一

符號 & 定義 & 基礎知識

符號&定義

概率

\(P(A)\) 表示事件 \(A\) 發生的概率。

  1. 對於離散的情況,假設一共有 \(n\) 種情況均勻隨機,其中 \(m\) 種使得事件 \(A\) 成立,那麼 \(P(A)=\dfrac{m}{n}\)

因此,“概率”在很多情況下可以看作“計數”

當然,直接考慮概率也有好處,它相當於約掉了很多東西,讓問題處理起來更加方便

  1. 對於連續情況:可以使用面積/體積的比來計算概率

\(P(A|B)\) 表示條件概率,即,我們假設 \(B\)

已經發生的條件下,\(A\) 多少概率發生

期望

對於隨機變數 \(x\)\(E(x)\) 表示 \(x\) 的期望。

  1. 對於離散的情況,它的值就是每一種可能值乘以它對應的概率

    如,扔一個標準的骰子,朝上的點數的期望是 \(1\times\dfrac{1}{6}+2\times\dfrac{1}{6}...+6\times\dfrac{1}{6}=3.5\)

  2. 對於連續的情況,我們可以使用積分等手段計算期望,這裡略

基礎知識

注意:以下式子全都可以反過來用,做題的時候思維要靈活一些

概率

\(A,B\) 獨立(即二者互不影響)時:

  1. \(P(A\cap B)=P(A)\times P(B)\)
  2. \(P(A\cup B)=P(A)+P(B)\)

\(\overline{A}\) 表示 “\(A\) 不發生”,則 \(P(\overline{A})=1-P(A)\)

這個式子結合上面兩個式子,可以使用容斥原理計算概率

\(P(A|B)=\dfrac{P(A\cap B)}{P(B)}\) (條件概率)

\(A_1,A_2...A_n\) 恰好能覆蓋所有情況(即,完備),對於事件 \(B\)\(P(B)=\sum\limits_{i=1}^{n} P(B|A_i)\)

這個相當於是一個分類討論,先按 \(A\) 分類,看 \(B\) 在這個條件下多少概率出現

就好比我家裡有短裙和短袖,每種紅綠藍三種顏色的各一件,即,一共 \(6\)

件衣服

那我穿紅色衣服的概率就是,穿紅色短袖的概率+穿紅色短裙的概率

期望

\(x,y\) 獨立時,\(E(x+y)=E(x)+E(y)\) (期望的線性性)

這個式子有一個等價的表達,\(E(ax+by)=aE(x)+bE(y)\),其中 \(a,b\) 是任意標量

\(x\) 是正整數時,\(E(x)=\sum\limits_{i} P(x\ge i)\)

證明就考慮一下一個 \(P(i)\) 被算多少次就行了,算一算髮現這個次數正好是 \(1,2,3...n\)

而對於正整數的情況,期望正好是 \(\sum\limits_{i} i\times P(i)\)\(P(i)\) 應該被算 \(1,2,3...n\) 次,正好一樣,就對了

例題&思維方法 I

這是第一部分,暫且比較簡單

(因為這塊參考的課件是比較早的課件,好像是noip的集訓)

poj2151 簡單題

有兩個限制:每個隊都得做至少一個題(設為條件A),並且至少存在一個隊做出來 \(k\) 個題 (設為條件B)

我們要求 \(A\cap B\) 的概率。眾所周知,\(P(A\cap B)=P(A)-P(A\cap\overline{B})\)

為什麼這麼考慮呢,因為,正難則反嘛。

先看 \(P(A)\) 怎麼做。簡單想一下,也得考慮反面做。對於每個隊,考慮拿 \(1\) 減去爆零的概率,就是這一個隊至少A掉一個題的概率。然後由乘法原理,隊之間的概率乘起來,就是同時滿足的方案。

接下來看 \(P(A\cap \overline{B})\)。考慮 \(\overline{B}\) :每個隊A掉的題數都 \(\le k-1\)。由於還需要滿足條件 \(A\),所以相當於每個隊A掉的題都在 \([1,k-1]\) 裡面。

考慮這個咋做。此時熟練的選手腦子裡已經有一個GF了。先列舉隊,設 \(f(i)\) 表示這個隊AC了 \(i\) 個題的方案數。那肯定是,在概率數組裡選 \(i\) 個“AC的概率”乘起來,然後選 \(m-i\) 個 “不AC的概率” 乘起來。我們發現這很GF,直接GF

設當前這個隊AC第 \(i\) 個題的概率是 \(p_i\)。那很明顯 \(f\) 的OGF,設為 \(F\),就是

\[\prod\limits_{i=1}^{m} (1-p_i)+p_ix \]

最後得到當前這個隊的答案就是 \(F[x^1...x^{k-1}]\)。每個隊的答案乘起來就行了。

樸素的實現是 \(O(nm^2)\) 的。使用分治FFT可以做到 \(O(nm\log m)\),這裡略(畢竟是10級演算法

這題非常水,但是可以幫助理解概率的“考慮反面”思想,還有條件之間取交,取並的概率的計算。這些是很重要的基礎知識,做完這個題之後也可以想一想。

CF601C Kleofáš and the n-thlon

(神祕名字,誰教教我咋唸啊)

題目中,\(k\) 這個人在 \(i\) 比賽裡面的排名被設為 \(x_i\)。但由於後面要用 \(x\) ,這裡取名叫 \(p_i\)

\(s_i\) 表示第 \(i\) 個人的總得分

我們要求 \(k\) 這個人的排名(定義為小於它的數量+1)的期望。

根據上面期望相關的式子,先轉化一波。要求:

\[E(\sum\limits_{i\neq k} [s_i<s_k])\\ \]

注意到對於某人的某次比賽,排第幾名都是等概率的。又注意到除了 \(k\) 這個人之外的人,沒有本質區別,都可以看做是同一個人,或者說,把兩個人換一下完全不影響。感性理解叫 “都是外人”

根據線性性把這個式子拆開,然後根據人之間的等價性,每一項都是一樣的。於是變為:

\[(m-1)\times E(s_i<s_k),i\neq k \]

\(i\) 任意。我們後面就稱它為“外人”,即,一個不是 \(k\) 的人。

對於 \(i\) 這個人,在第 \(j\) 場比賽裡面,排 \(r\) 位的概率都是 \(\dfrac{1}{m-1}\),但是 \(r\) 不能是 \(p_j\)

那它在這一場比賽裡,所有可能性構成的OGF就是 \(\sum\limits_{i=1}^{m}[i\neq r]\dfrac{1}{m-1} x^i\)

我們把每一場比賽的這個 OGF 卷一下,\(i\) 次方項就是它總得分為 \(i\) 的方案數。取它的 \([1,s_k)\) 次項和即可。

但是就算拿FFT卷,樸素的複雜度也是 \(O(n^2m\log(nm))\),不太能過。拿分治FFT寫似乎理論複雜度對了,毛估估應該是 \(O(nm\log (nm))\) 的。但是我覺得它應該會很難寫,也不應該是標程。這題的這個範圍似乎在提示我們,複雜度應該是 \(O(n^2m)\)

考慮這一堆GF,它們只有一個空缺,和全 \(1\) 的多項式非常像。

考慮差分。由於它是兩段 \(1\) 組成,所以它的差分應該最多 \(4\) 個位置有值。而多項式這個係數取差分,其實就是捲上一個 \(1-x\),性質非常好:滿足交換律和結合律。也就是說,我們可以先取一堆差分,然後再卷,然後再字首和做回來,做的順序不影響。

那這樣只有 \(4\) 個位置有值,就算是暴力的從 \(1\)\(n\) 列舉,每次卷積的複雜度也只有 \(O(4nm)=O(nm)\),總複雜度 \(O(n^2m)\)。雖然劣一些,但是好寫

怎麼只有這麼點例題啊

會加上的會加上的qaq