一類概率期望問題的殺器 勢函式和鞅的停時定理

2022-05-13 10:07:22 字數 4868 閱讀 1090

考慮隨機事件序列$\$,隨機變數$t$為其停時。我們希望求$\mathbb[t]$,但一般情況下是比較困難的。

可以考慮構造勢函式$\phi(a)$,滿足

$ \mathbb[\, \phi(a_)-\phi(a_t) \mid a_t, a_, \dots, a_1, a_0 \,] = -1. $

$ \phi(a_t) $為常數。

令$x_t = \phi(a_t)+t$,則

$$ \mathbb[\, x_-x_t \mid x_t, x_, \dots, x_1, x_0 \,] = 0, $$

即$\$是鞅。若$t$也是$\$的停時,則根據停時定理,我們有

$$ \mathbb[x_t] = \mathbb[x_0], $$

即$$ \mathbb[t] = \phi(a_0)-\phi(a_t). $$

這即是我們本文主要討論的方法。

codeforces 1349d. slime and biscuits

有$n$個人在玩傳球遊戲,一開始第$i$個人有$a_i$個球。每一次傳球,等概率隨機選中乙個球,設其當前擁有者為$i$,$i$將這個球等概率隨機傳給另乙個人$j(j \neq i)$。當某乙個人擁有所有球時,停止遊戲。問遊戲停止時的期望傳球次數。

解:記球的總數為

$$ m = \sum_^n a_i. $$

我們用$a_t = (a_, a_, \dots, a_)$來描述$t$次傳球後的遊戲狀態。初始狀態為$a_0 = (a_, a_, \dots, a_)$。

考慮構造勢函式

$$ \phi(a_t) = \sum_^n f(a_). $$

注意到傳球遊戲是乙個markov過程,即$a_$只取決於$a_t$,則

$$ \mathbb[\,\phi(a_)\mid a_t, \dots, a_0 \,] = \mathbb[\,\phi(a_)\mid a_t \,].  $$

上式中的期望可考慮列舉所有傳球可能,即以$\frac } \cdot \frac 1 $的概率,$i$會將球傳給$j(j \neq i)$,從而

$$ \begin \mathbb[\,\phi(a_)\mid a_t \,] & = \sum_ \sum_ \frac } \left[ f(a_-1)+f(a_+1)+\sum_} f(a_) \right] \\

& = \sum_i \left[ \frac } m f(a_-1) + \frac } f(a_+1) + \frac )(n-2)} f(a_) \right]. \end $$

令$\mathbb[\,\phi(a_)-\phi(a_t)\mid a_t \,] = -1$可得

$$ \sum_i f(a_) = \sum_i \left[ \frac } m f(a_-1) + \frac } f(a_+1) + \frac )(n-2)} f(a_) + \frac } m \right]. $$

於是,我們可取

$$ f(a) = \frac a m f(a-1) + \frac f(a+1) + \frac f(a) + \frac a m. $$

一些邊界問題的處理如下:令$a = 0$帶入上式可得$f(0) = f(1)$,故可取$f(0) = f(1) = 1$,遞推式為

$$ f(a+1) = \left[ \frac - (n-2) \right] f(a) - \frac \left( f(a-1)+1 \right). $$

另一方面,我們注意到$\phi(a_t) = f(m)+(n-1)f(0)$為常數,故可應用停時定理,得

$$ \mathbb[t] = \sum_ f(a_) - \left(f(m)+(n-1)f(0)\right). $$

codeforces 850f. rainbow balls

有$n$種不同顏色的球,其中第$i$種顏色的球有$a_i$個。每次從所有球中等概率隨機選出乙個球a,再從所有球中等概率隨機選出另乙個球b,將球b染成球a的顏色;直到所有球的顏色都相同為止。問染色次數的期望。

解:記球的總數為

$$ m = \sum_^n a_i. $$

我們用$a_t = (a_, a_, \dots, a_)$來描述$t$次染色後的狀態。

考慮構造勢函式

$$ \phi(a_t) = \sum_^n f(a_). $$

考慮所有染色可能,即

以$\frac } \cdot \frac } $的概率,將球$j(j \neq i)$染成球$i$的顏色;

以$\sum_i \frac (a_-1)} $的概率,不發生任何變化。

從而$$ \begin \mathbb\left[\,\phi(a_)\mid a_t\,\right] & = \sum_ \sum_ \frac a_} \left[ f(a_+1) + f(a_-1) + \sum_} f(a_) \right] + \sum_i \frac (a_-1)} \sum_k f(a_) \\ & = \sum_i \left[ \frac (m-a_)} \left( f(a_+1) + f(a_-1) \right) + \left(1-\frac (m-a_)} \right) f(a_) \right]. \end $$

令$\mathbb[\,\phi(a_)-\phi(a_t)\mid a_t \,] = -1$可得

$$ \sum_ f(a_) = \sum_i \left[ \frac (m-a_)} \left( f(a_+1) + f(a_-1) \right) + \left(1-\frac (m-a_)} \right) f(a_) + \frac } \right], $$

即$$ \sum_i \left[ \frac (m-a_)} \left( f(a_+1) + f(a_-1) - 2f(a_) \right) + \frac } \right] = 0. $$

於是,我們可取

$$ \frac \left( f(a+1) + f(a-1) - 2f(a) \right) + \frac = 0, $$

即$$ f(a+1)+f(a-1)-2f(a) = -\frac. $$

令$g(a) = f(a)-f(a-1)$,上式化為

$$ g(a+1) - g(a) = -\frac. $$

於是$$ g(x) = g(0)-\sum_^ \frac. $$

$$ f(x) = f(0)+\sum_^x g(a) = f(0) + \sum_^x \left[ g(0)-\sum_^ \frac \right] = f(0)+xg(0)-(m-1)x+(m-1)(m-x)\sum_^ \frac . $$

為方便起見,我們取$f(0) = 0, g(0) = m-1$,則

$$ f(x) = (m-1)(m-x)\sum_^\frac . $$

特別地,$f(m) = 0$。

另一方面,$\phi(a_t) = f(m) + (n-1)f(0) = 0$ 為常數,故可應用停時定理得

$$ \mathbb[t] = \phi(a_0)-\phi(a_t) = \sum_ f(a_). $$

codeforces 1025g. company acquisitions

有$n$個人,一開始每個人都未被領導。每次修改領導情況:等概率隨機選擇乙個未被領導的人$x$,再等概率隨機選擇另乙個未被領導的人$y$,令$x$被$y$領導,並且所有原來被$x$領導的人的狀態變為未被領導。直到只剩下乙個人未被領導(即其他所有人都被這個人領導)為止。問修改領導情況的期望次數。

解:我們把被同乙個人領導的所有人加上領導者一起稱為乙個【小組】。我們用$a = \, a_, \dots, a_ \}$來描述$t$次修改領導後的狀態,其中$m_t$表示$t$次修改領導後小組的個數,於是我們有

$$ \sum_^ a_ = n. $$

考慮構造勢函式

$$ \phi(a_t) = \sum_^ f(a_). $$

考慮每次修改領導的所有可能,即以$\frac 1 $的概率,第$i$個小組的領導進入第$j(j \neq i)$組,並且第$i$個小組的組員(非領導人員)被拆散成$(a_-1)$個只有1個人的小組。從而

$$ \begin \mathbb\left[\,\phi(a_)\mid a_t\,\right] & = \sum_ \sum_ \frac 1 \left[ (a_-1) f(1) + f(a_+1) + \sum_} f(a_) \right] \\ & = \sum_i \left[ \frac 1 f(a_+1) + \left(1 - \frac 2 \right) f(a_) \right] +  \frac f(1). \end $$

令$\mathbb[\,\phi(a_)-\phi(a_t)\mid a_t \,] = -1$可得

$$ \sum_i f(a_) = \sum_i \left[ \frac 1 f(a_+1) + \left(1 - \frac 2 \right) f(a_) + \frac f(1) + \frac 1 \right]. $$

我們可取

$$ f(a) = \frac 1 m f(a+1) + \left(1 - \frac 2 m \right) f(a) + \frac f(1) + \frac 1 m $$

對任意$m$恆成立。整理後可得

$$ f(a+1)-2f(a) + \frac f(1) + 1 = 0. $$

令$f(1) = 0$,且滿足遞推式$f(a+1) = 2f(a)-1$即滿足上式,解為

$$ f(a) = 1-2^. $$

另一方面,$\phi(a_t) = f(n) = 1-2^$ 為常數,故可應用停時定理得

$$ \mathbb[t] = \phi(a_0) - \phi(a_t) = \sum_ \left( 1-2^-1} \right) - \left( 1-2^ \right). $$

codeforces 1479e. school clubs (problem by myself)

函式 名的使用和第一類物件,閉包,迭代器

1,函式名的運用 def func print 呵呵 print func a 10 print id a 1402039600 def func print 哈哈 a func 把函式名賦值給變數a a a現在是乙個函式名,當加 表示執行函式 函式名可以存放到容器中 deffunc1 print ...

一類連線問題中棧和Catalan數的應用

最後說下以前的一篇日誌 pz伯伯的番茄排序 也是catalan數列解決的,那個題目也相當於將2n個番茄編號,前n 1 n 個代表前n個最小的,用01 n表示 後n n 1 2n 個代表後n個次小的,用1 n 1 2n表示。那麼含有6個0,6個1的序列,就對應一種方案.比如000000111111就對...

函式的第一類物件,f格式化,迭代器以及遞迴

第一類物件 特殊點 1.可以當作值被賦值給變數 def func print 1 a func a 2.可以當作元素存放在容器中 def func print 1 lst func,func,func for i in lst i 3.函式名可以當作函式的引數 def func f f def fo...