Description
给一个数列,每次随机从 [1,m] 中选择一个数添加到数列末尾,直至数列的 gcd=1 时停止。求期望长度。
1≤m≤105
Solution
考虑求 E(X) 的一种公式:
E(X)=i≥1∑P(X≥i)
考虑 P(X≥i) 的意义:前 i−1 个数的 gcd=1 。
设 fi 表示前 i 个数,gcd=1 的方案数,则有
fi=−d=2∑mμ(d)(⌊dm⌋)i
可以通过考虑枚举最后的 gcd 并容斥得到上式。
然后将 f 带回到 E(X) 的式子里,可以得到
E(X)=i≥1∑P(X≥i)=i≥1∑mifi−1=−i≥1∑mid=2∑mμ(d)(⌊dm⌋)i−1
分数线上下的指数不统一不方便,我们考虑一下怎么统一。事实上只要让 P 中的 >=
变成 >
即可。
因为长度至少为 1 ,所以有
E(X)=1+i≥1∑P(X>i)=1−i≥1∑mid=2∑mμ(d)(⌊dm⌋)i=1−d=2∑mμ(d)i≥1∑(m⌊dm⌋)i
然后对于等比数列求和,我们有
i≥0∑xi=1−x1−x+∞=1−x1 (x∈(−1,1))
所以原式可以转化为
E(X)=1−d=2∑mμ(d)m−⌊dm⌋⌊dm⌋
复杂度 O(m) 。
总结一下:在 OI 中出现了无穷项,应该果断往「等比数列」的形式上去靠。