the Solution of the Problem P5389

· · 题解

\color{blue}{\texttt{[Problem]}} \color{blue}{\texttt{[Solution]}}

由于 x,y 的产生方式是相同的,故取值具有对称性,所以 x>y 的概率等于 x<y 的概率,即:

P(x>y)=P(x<y)

所以,答案就是 1 减去 x=y 的概率再除以 2

依题意得,

a_{i} = \frac{i \times (i+1)}{2}

故而,x 选中 [1,v_1] 某一个数的概率就是:

\frac{1}{\left ( \frac{i\times (i+1)}{2}\right )}

由条件概率公式可知,在 v_1 选中 a_{i} 条件下 x 选中其中任意一个数的概率为:

\frac{3 \times i \times (i+1)}{n \times (n+1) \times (n+2)} \times \frac{1}{\left ( \frac{i\times (i+1)}{2}\right )}=\frac{6}{n(n+1)(n+2)}

易知,使得 x 有概率取到区间 \left [ \frac{i(i-1)+1}{2}+1,\frac{i(i+1)}{2}\right ]i 个数的 v_1(n+1-i) 个,因此选到这个区间内的任意一个数的概率为:

\frac{6}{n(n+1)(n+2)} \times (n+1-i)=\frac{6(n+1-i)}{n(n+1)(n+2)}

故而选到这个区间的概率为:

i \times \frac{6(n+1-i)}{n(n+1)(n+2)} 所以: $$ \begin{aligned} P(x=y)&=\sum\limits_{i=1}^{n} i \times \left [ \frac{6(n+1-i)}{n(n+1)(n+2)} \right ]^2\\ &=\frac{3}{n(n+2)} \end{aligned} $$ 所以: $$ \begin{aligned} P(x<y)&=\frac{1-P(x=y)}{2}\\ &=\frac{1-\frac{3}{n(n+2)}}{2} \end{aligned} $$ 因为模数是素数,随便拿一个快速幂就可以维护这个式子了。 同时,我们可以发现,当 $n \rightarrow \infty$ 时,概率趋近于 $\dfrac{1}{2}$。 $\color{blue}{\texttt{[code]}}
long long n;int ans;
int main(){
    scanf("%lld",&n);n%=mod;
    if (n==0) ans=ksm(2,mod-2);
    else ans=1ll*(mod+1-3ll*ksm(1ll*n*(n+2)%mod,mod-2)%mod)%mod*ksm(2,mod-2)%mod;
    printf("%d",ans);
    return 0;
}