计蒜客 手拉手 调和级数

版权声明:虽然是个蒟蒻但是转载还是要说一声的哟 https://blog.csdn.net/jpwang8/article/details/83019575

Description


小 P 是个幼儿园老师。有一天,他组织 nnn 个小朋友玩游戏。游戏开始时,每个小朋友伸出两只手,没有手相互拉在一起。
每次,小 P 等概率随机挑选两只空着的手,让这两只手拉在一起。小 P 一直重复这个操作,直到所有的手都拉在一起。
小 P 在成为幼儿园老师之前是个数学专业的博士。因此,他想知道,当所有的手都拉在一起之后,
小朋友们拉成的圈个数的期望是多少?其中,我们规定,一个小朋友左手拉右手的情况也形成一个圈。

由于小 P 忙着和小朋友们玩游戏,他找到了聪明的你,希望你能帮他解决这个问题。

对于 100% 的数据:1≤n≤10181 \le n \le 10^{18}1≤n≤1018。

Solution


非常巧妙的一道题

考虑期望的线性性,我们发现只有第i个小朋友自己牵自己的手才会产生新的环,这样的概率是 1 2 i 1 \frac{1}{2i-1}
于是答案为 i = 1 n 1 2 i 1 \sum\limits_{i=1}^n\frac{1}{2i-1} ,这样for有70’
考虑求 i = 1 n 1 n \sum\limits_{i=1}^n\frac{1}{n} 这个东西,一个近似的解是 ln ( n ) + c \ln(n)+c ,其中c是欧拉常数
然后我们求其中的奇数项就用总的减去偶数项,而偶数项就是总的一半/2
然后就可以O(1)了

Code


口胡题解不写code

猜你喜欢

转载自blog.csdn.net/jpwang8/article/details/83019575
今日推荐