概率期望

概率

对于一个随机试验,我们把它所有的可能性放在一个集合中。

如果两个事件 A A A B B B,满足 A ∪ B = ∅ A \cup B = \empty AB=,即为 A A A B B B 不能同时发生,那么称这两个事件是互斥的。

两个互斥事件 A A A B B B 同时发生的概率 P ( A ∪ B ) = P ( A ) + P ( B ) P(A \cup B) = P(A) + P(B) P(AB)=P(A)+P(B)

如果两个事件 A A A B B B,满足 P ( A ∩ B ) = P ( A ) × P ( B ) P(A \cap B) = P(A) \times P(B) P(AB)=P(A)×P(B),那么称这两个事件是独立的。

在事件 B B B 已经发生的前提下,事件 A A A B B B 同时发生的概率为 P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B) = \frac{P(AB)}{P(B)} P(AB)=P(B)P(AB)

对于事件 B B B 的一个划分,有贝叶斯公式 P ( A ∣ B i ) = P ( A ) P ( B i ∣ A ) P ( B i ) P(A|B_i) = P(A) \frac{P(B_i|A)}{P(B_i)} P(ABi)=P(A)P(Bi)P(BiA)

期望

数学期望是试验中每次可能结果的概率乘以其结果的总和。比如买彩票,有 0.005 0.005 0.005 的概率中 100 100 100 元, 0.1 0.1 0.1 的概率中 10 10 10 元, 0.5 0.5 0.5 的概率中 1 1 1 元.那么他买一次彩票得到的钱期望为 0.005 × 100 + 0.1 × 10 + 0.5 × 1 = 2 0.005 \times 100 + 0.1 \times 10 + 0.5 \times 1=2 0.005×100+0.1×10+0.5×1=2

期望的和 = = = 和的期望。用数学语言是一个离散型随机变量 E ( x ) = ∑ i p i x i E(x)=\sum_{i}{}{p_i x_i} E(x)=ipixi。其中 x i x_i xi E ( x ) E(x) E(x) 可能一个值, p i p_i pi 表示这个值的概率,不要求 X i X_i Xi 之间的独立。

栗子

数形结合

给定两个区间 [ t 1 , t 2 ] [t_1, t_2] [t1,t2] [ s 1 , s 2 ] [s_1,s_2] [s1,s2] 和一个 w w w。求从 [ t 1 , t 2 ] [t_1,t_2] [t1,t2] 中随意选一个数 a a a,再从 [ s 1 , s 2 ] [s_1,s_2] [s1,s2] 中随意选一个数 b b b,使得 ∣ a − b ∣ ≤ w |a-b| \leq w abw 的概率。

我们给一个矩形建立一个直角坐标系, [ t 1 , t 2 ] [t_1,t_2] [t1,t2] 相当于矩形的横坐标, [ s 1 , s 2 ] [s_1,s_2] [s1,s2]相当于矩形的纵坐标,有两条直线 y = x + w y=x+w y=x+w y = x − w y=x-w y=xw。那么概率是两条直线与矩形的交,与矩形的面积比。

期望可加性

给定一棵 n n n 个点的有根树,节点编号为 1 ∼ n 1 \sim n 1n,根节点为 1 1 1。你会不停地重复以下操作,直到所有点被覆盖为止:等概率随机树上的一个未被覆盖的点,并覆盖这个点到根路径上的所有点。请问你的期望操作次数是多少?为了避免高精度运算,你只需要输出答案对 998244353 998244353 998244353 取模后的结果。

求整棵树需要多少次被覆盖,相当于对于每个点的期望覆盖次数进行求和。对于一个点 i i i,它的子树中任意一个点被覆盖相当于这个点被覆盖了,所以期望是 1 s z i \frac{1}{sz_i} szi1

期望递推

总共有 n n n 条带 「圣盾」的「胖头鱼」和 m m m 条不带圣盾的胖头鱼,每次等概率对一条存活的胖头鱼造成「剧毒」伤害。现在 Amazing John 想知道,期望造成多少次伤害可以杀死全部胖头鱼?答案对 998244353 998244353 998244353 取模。

  • 「圣盾」当拥有圣盾的胖头鱼受到伤害时,免疫这条鱼所受到的本次伤害。免疫伤害后,圣盾被破坏。

  • 「胖头鱼」:在一条胖头鱼的圣盾被破坏后,给予其他所有没有死亡且没有圣盾的胖头鱼圣盾。

  • 「剧毒」:立即杀死没有圣盾的胖头鱼。

我们先考虑 m = 0 m=0 m=0 的子任务,所有的鱼都带神盾。

我们假设有圣盾为 1 1 1,无神盾为 0 0 0,初始序列全为 1 1 1。令 f ( i ) f(i) f(i) 表示还有 i i i 只鱼,其中有一只鱼没带神盾,其它鱼都带圣盾的情况下,消灭所有鱼的期望次数。

分攻击到 1 1 1 和攻击到 0 0 0 两个情况,不难写出转移柿子。

f ( i ) = 1 i × [ f ( i − 1 ) + 1 ] + i − 1 i × f ( i ) + 1 i × f ( i ) = f ( i − 1 ) + ( i − 1 ) × f ( i ) + i + 1 f ( i ) = f ( i − 1 ) + i + 1 f(i) = \frac{1}{i} \times [f(i-1)+1] +\frac{i-1}{i} \times f(i) +1\\ i \times f(i) = f(i-1) +(i-1) \times f(i)+i+1\\ f(i)=f(i-1) + i+1 f(i)=i1×[f(i1)+1]+ii1×f(i)+1i×f(i)=f(i1)+(i1)×f(i)+i+1f(i)=f(i1)+i+1

显然 f ( 1 ) = 1 f(1) = 1 f(1)=1,从 f ( 2 ) f(2) f(2) 开始转移,因为我们一开始要随便打一头鱼使得序列中有一个 0 0 0,所以答案要加上 1 1 1,也就相当于从 f ( 1 ) f(1) f(1) 开始转移了,其中 f ( 0 ) = 0 f(0)=0 f(0)=0。写出通项公式

S ( n ) = n ( n + 1 ) 2 + n = n ( n + 3 ) 2 S(n) = \frac{n(n+1)}{2}+n \\ =\frac{n(n+3)}{2} S(n)=2n(n+1)+n=2n(n+3)

再考虑 m ≥ 0 m \ge 0 m0 的情况。我们的杀鱼过程可以分成两个阶段,一个是一直在杀没有圣盾的鱼,另一个是不小心杀到了有圣盾的鱼使得游戏局面回到了上面的情况。因为 m ≤ 1 0 6 m \leq 10^6 m106,所以我们可以枚举第一个阶段杀了多少只没有神盾的鱼,再用通项公式计算答案。

∑ i = 0 m ∏ j = 0 i m − j + 1 n ( m i ) i ! × [ i + n − m n − i   S ( n − i ) ] ( 0 !   =   1 ) \sum_{i=0}^m \prod_{j=0}^i \frac{m-j+1}{n} {m \choose i}i! \times [i+ \frac{n-m}{n-i}\ S(n-i)] \quad (0! \ = \ 1) i=0mj=0inmj+1(im)i!×[i+ninm S(ni)](0! = 1)

乘号前是先选出杀哪些手无寸铁的鱼,然后给他们安排一个顺序,乘号后是随便选一只有圣盾的鱼用通项公式求答案。其中一大坨可以预处理。

无限项等比数列

一个数想要成为逆序对,它等后面的数选了它不选,那么对于后面的一个数情况可能是我不选,它选了,或是我不选,它不选,我不选,它选,这样无限循环下去,那么第 n n n 次循环其实有 2 n − 1 2n-1 2n1 不选的概率。那么可以看成一个首项为 p ( 1 − p ) p(1-p) p(1p) 公比是 ( 1 − p ) 2 (1-p)^2 (1p)2 的等比数列,这个东西有无限项,但它的公比小于 1 1 1 是可以收敛的。假设你的首项为 a a a 公比为 q q q 那么在 q < 1 q<1 q<1 的情况下,无限项的求和公式为

S = 1 1 − q S = \frac{1}{1-q} S=1q1

那么这个可以逆元套上去,那么考虑一个数 i i i 后面是有 n − i n - i ni 个数的,那么每个数都可以和它构成逆序对,那么这个数组成逆序对的期望是 ( n − i ) × S (n-i) \times S (ni)×S,那么你再加法原理加起来,不能暴力加,这其实是 ( n − 1 ) ( n − 1 + 1 ) 2 \frac{(n-1)(n-1+1)}{2} 2(n1)(n1+1) 的,乘上去摸一下然后开个 ull 就可以了。

int a1 = (y - x) * ksm(y, p - 2, p) % p * x % p * ksm(y, p - 2, p) % p;
int q = (y - x) * ksm(y, p - 2, p) % p * (y - x) % p * ksm(y, p - 2, p) % p;
int ans = ((n - 1) * n % p - n * (n - 1) % p * ksm(2, p - 2, p) % p + p) % p * a1 % p * ksm(1 - q + p, p - 2, p) % p;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值