1. 程式人生 > >計蒜客 手拉手 調和級數

計蒜客 手拉手 調和級數

Description

小 P 是個幼兒園老師。有一天,他組織 nnn 個小朋友玩遊戲。遊戲開始時,每個小朋友伸出兩隻手,沒有手相互拉在一起。 每次,小 P 等概率隨機挑選兩隻空著的手,讓這兩隻手拉在一起。小 P 一直重複這個操作,直到所有的手都拉在一起。 小 P 在成為幼兒園老師之前是個數學專業的博士。因此,他想知道,當所有的手都拉在一起之後, 小朋友們拉成的圈個數的期望是多少?其中,我們規定,一個小朋友左手拉右手的情況也形成一個圈。

由於小 P 忙著和小朋友們玩遊戲,他找到了聰明的你,希望你能幫他解決這個問題。

對於 100% 的資料:1≤n≤10181 \le n \le 10^{18}1≤n≤1018。

Solution

非常巧妙的一道題

考慮期望的線性性,我們發現只有第i個小朋友自己牽自己的手才會產生新的環,這樣的概率是12i1\frac{1}{2i-1} 於是答案為i=1n12i1\sum\limits_{i=1}^n\frac{1}{2i-1},這樣for有70’ 考慮求i=1n1n\sum\limits_{i=1}^n\frac{1}{n}這個東西,一個近似的解是ln(n)+c\ln(n)+c,其中c是尤拉常數 然後我們求其中的奇數項就用總的減去偶數項,而偶數項就是總的一半/2 然後就可以O(1)了

Code

口胡題解不寫code