D. Steps to One
题意
每次从1∼m从等概率的选择一个数, 直到所有选择的数的 gcd 为 1, 问操作的次数的期望是多少?
题解1
设f[n]表示当前 gcd 为 n 还需要的步数的期望
f[n]=1+m∑i=1f[gcd(i,n)]mm∑i=1f[gcd(i,n)]=∑d|nf[d]m∑i=1e[gcd(i,n)==d]m∑i=1e[gcd(i,n)==d]=⌊md⌋∑i=1ϵ[gcd(i,nd)]=⌊md⌋∑i=1∑t|gcd(i,nd)μ(t)=∑t|ndμ(t)⌊mdt⌋接下来把右边f[n]的项提出来(m−⌊mn⌋)f[n]=m+∑d|n,d≠nf[d]∑t|ndμ(t)⌊mdt⌋ans=1+m∑i=1f[i]m题解2
设E[n|i]表示 gcd 为 n 的倍数的期望步数
k=⌊mn⌋E[n|i]=∞∑j=1j∗kjmj=km1−km=km−kans=1+E[i>1]=1+m∑j=2−μ(j)E[j|i]代码
1 | //解1 |
引用
https://www.cnblogs.com/zyt1253679098/p/10584706.html
https://blog.csdn.net/neuq_zsmj/article/details/88830388