Loading

非常不正经的鞅与停时定理理解

鞅与停时

计数题的小技巧,也许以后会更详细学一学,目前参考价值不高。

直接看题目。

例题:

一共有 n×m 张卡,n 种,每种各 m 个。手中维持有 m 张,知道初始的时候每一种牌有 ai 个,每次随机一张扔掉,并且在牌堆中随机抽一张,然后把扔掉的牌插入牌堆。问多少次之后能够让手牌只有一种卡。

多次给定 a 询问。

n5000,q200,m105​。


考虑比较简单的做法,这种期望题不妨考虑解方程的形式,设 fi 表示 i 状态还有几步结束,注意到一个事实,我们只关注 i 的可重集,也就是说排序之后考虑,会发现 n17 的时候状态数不到 300。有转移 fu=puv(1+fv),对着这个高斯消元即可。

对于 n=2 的时候,会发现可以通过前面一个状态推后面一个,这样可以做到快速计算。

更大一点就是正解了,这里需要引入一个科技

鞅与停时定理

非常非常粗浅的理解。

如果一个时间离散的随机过程 {X0,X1,X2} 满足以下两个条件,则称之为鞅

  • tN,E(|Xt|)<,即 E(|Xt|) 有限
  • tN,X0,X1,E(Xt+1Xt|X0,X1Xt)=0

考虑用赌博的过来理解,可以把每一个 X 视为赌博某个时刻拥有的资金,每一次变换相当于进行了一次赌博。那么第一个限制就是资金期望有限,第二个限制就是,不管之前状态如何新的一局期望收益始终为 0

注意到第二个结论可以推到出 tN,E(Xt)=E(X0)

停时

随机过程可能有一个终止的时间,但是这个时间可能有多种可能,比如说在数轴上随机游走,走到某个点就停止,那么这个停止时间就是随机的。称这个随机变量为停时。

停时需要满足,通过 0T 时刻的所有的信息可以判断 T 时刻是否停下。

鞅与停时定理

考虑鞅的停时,设 T 是鞅 {X0,X1,X2} 的一个停时,以下三者之一成立的时候,有 E(XT)=E(X0)

  • T 几乎一定有界
  • tN,|Xt+1Xt| 一致有界,E(T) 有限
  • tN,Xt 一致有界,T 几乎一定有限

其中有一些高级的词语,几乎一定的意思为 P(x)=1,有限的意思为 <,有界的意思为 l,r,lxr

我目前也不太会证明,一般题目要求的都是 E(T) 因此可以认为题目中这个定理始终成立。

势能函数

OI 中的最常见的应用。

构造函数 φ(X) 满足:

tN,E(φ(Xt+1)φ(Xt)|X0,X1Xt)=1

可以理解为一个刻画变化过程的函数。

这个时候就可以利用鞅与停时定理了,令 Yi=φ(Xi)+i,不难发现 Y 是一个鞅。直接用定义法证明即可。

那么就会有优秀的性质 E(YT)=E(Y0)

展开分析,利用期望的线性性。

E(YT)=E(Y0)E(φ(XT)+T)=E(X0)E(T)=E(X0)E(φ(XT))

注意到 φ 是我们自己构造的,不妨令其为常数,那么最后得到的就是

E(T)=E(X0)φ(XT)

这就是最常见的应用了,用来计算停时的有用工具。


回到原题,之前提到,我们只关注现在每个种类个数的可重集,那么不妨令 f(a) 表示一个时候的势能,f(a)=i=1nφ(ai) 其中 φ 就是一个构造的函数。

根据上面的过程,对于 φ 进行限制,即 E(f(i+1)f(i))=1,考虑变化的过程,如果选择 ij 那么相当于 f 不会改变,也就不会对于 E 有贡献。那么只需要关心有共贡献的部分,假设目前每一个有 ai 个,令 d(i)=φ(i)φ(i1)式子写出来就是:

1=ijaim×maj(n1)m×(φ(ai1)φ(ai)+φ(aj+1)φ(aj))=ijaim×maj(n1)m×(d(aj+1)d(ai))=ijaim×maj(n1)m×d(aj+1)ijaim×maj(n1)m×d(ai)=j=1nmajm×maj(n1)m×d(aj+1)i=1naim×(n2)m+ai(n1)m×d(ai)

推完式子别忘了,d 是我们自己构造的, 那么不妨设:

maim×mai(n1)m×d(ai+1)aim×(n2)m+ai(n1)m×d(ai)=1n

这样可以线性构造出来 d,也就线性得到了 φ

最后根据鞅与停时定理,得到答案就是 ans=f(a)φ(m)

posted @   Jryno1  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示