調和級數

kuailedetongnian發表於2024-06-13

定義

調和級數 : \(\sum\limits^{\infty}_{i=1}{\frac{1}{i}}\)

\(f_n=\sum\limits^{n}_{i=1}{\frac{1}{i}}\)

計算

\(f_n = 1 + \frac{1}{2} + \frac{1}{3} + \frac{1}{4} + \frac{1}{5} + \frac{1}{6} + \frac{1}{6} + \dotsm + \frac{1}{n} < 1 + \frac{1}{2} + \frac{1}{2} + \frac{1}{4} + \frac{1}{4} + \frac{1}{4} + \frac{1}{4} + \dotsm + 1 = O(\ln n)\)

\(f_n = O(\ln n)\)

實際上 \(f_n = \ln n + \gamma + o(\frac{1}{2n})\) ,其中 \(\gamma = 0.57721 56649 01532 86060 65120 90082 40243 10421 59335 \dotso\) ,是尤拉常數。

\(n \rightarrow \infty, f_n = \ln n + \gamma\)

程式碼實現:

  • \(n\) 比較小的時候可以按定義式計算 \(f_n\) ,儘量不要用 \(\ln n + \gamma\) 來算,因為有 \(o(\frac{1}{2n})\) 的誤差
  • \(n\) 比較大的時候直接計算 \(\ln n + \gamma\)

例題

Luogu P5147 隨機數生成器

\(g_n\)\(\text{work}(n)\) 的期望值

\[g_n = \begin{cases} 1 + \frac{1}{n}\sum\limits^n_{i=1}{g_i} & n > 1 \\ 0 & n = 1 \end{cases} \]

對於 \(n > 1\)

\(g_n = 1 + \frac{1}{n}\sum\limits^n_{i=1}{g_i}\)

\(n \times g_n = n + \sum\limits^n_{i=1}{g_i}\)

\((n - 1) \times g_n = n + \sum\limits^{n-1}_{i=1}{g_i}\) \((1)\)

換元 \(n \leftarrow n - 1\)

\((n - 2) \times g_{n-1} = n - 1 + \sum\limits^{n-2}_{i=1}{g_i}\) \((2)\)

\((1)\)\(-\) \((2)\) 式,得

\((n - 1) \times g_n - (n - 2) \times g_{n-1} = 1 + g_{n-1}\)

\(g_n = g_{n-1} + \frac{1}{n-1}\)

\[g_n = \begin{cases} f_n + 1 & n > 1 \\ 0 & n = 1 \end{cases} \]

相關文章