用一阶矩初步控制随机二叉树的深度

回顾 Catalan 数

\[C = z(1 + C)^2, \]

根据 Lagrange 反演, 我们有

\[[z^n](1+C)^k = \frac{k}{n}[t^{n-1}] (1+t)^{2n+k-1} = \frac{k}{n} \binom{2n+k-1}{n+k}. \]

考虑计数随机二叉树有多少个深度为 \(k\) 的节点, 我们有 \(2^k\) 种选法, 选完之后已经钦定了树上有 \(k+1\) 个点, 接下来有 \(k+2\) 个空位可以用来放二叉树, 因此期望是

\[ \begin{align*} &\quad (C_n)^{-1} 2^k [z^{n-k-1}](1+C)^{k+2}\\ &= (C_n)^{-1} 2^k \frac{k+2}{n-k-1}\binom{2n-k-1}{n+1} \\ &= 2^k (k+2) \binom{n}{k+1} \binom{2n}{k+1}^{-1} \\ &= \frac{k+2}2 \prod_{i=0}^k \left(1 - \frac{i}{2n-i}\right) \\ &\leq \frac{k+2}2 \exp \left\{ -\sum_{i=0}^k \frac{i}{2n}\right\}\\ &\leq \frac{k+2}2 \exp \left\{ -\frac{k^2}{4n}\right\}. \end{align*} \]

\(Z_k\) 为深度 \(= k\) 的点数, 当 \(k = (2 + \epsilon) (n\log n)^{1/2}\), 得到 \(\Pr[Z_k > 0] \leq \mathbb E[Z_k] = O(n^{-\epsilon'})\). 进一步也能说明深度是 \(O((n\log n)^{1/2})\) 的, 虽然这完全比不上真实结果.

\(k=\lambda\sqrt n\), 设 \(Z_\lambda\) 是深度 \(\leq \lambda \sqrt n\) 的点数, 有渐进估计 (前面的不等式放掉的都是小量)

\[ \begin{align*} \mathbb E[Z_\lambda]/n & \sim \int_0^{\lambda} \frac{\lambda}2 \exp \left\{ -\frac{\lambda^2}{4} \right\} \mathrm{d}\lambda\\ &= 1- e^{-\lambda^2/4}. \end{align*} \]

\(\Pr[\mathrm{depth} \leq k] = \Pr[Z_\lambda \geq n] \leq \mathbb E[Z_\lambda]/n \sim 1- e^{-\lambda^2/4}\),
这给出深度的渐进估计

\[\mathbb E[\mathrm{depth}] \gtrsim \sqrt n \int_0^\infty e^{-\lambda^2/4} \mathrm{d}\lambda = \sqrt{\pi n}, \]

总而言之, 我们得到的结果是

\[\sqrt{\pi n} \lesssim \mathbb E[\mathrm{depth}] \leq O((n\log n)^{1/2}). \]

真实结果是 \(2\sqrt{\pi n}\). (Philippe Flajolet, Andrew Odlyzko, 1982, The average height of binary trees and other simple trees.)

上面各部近似的正确性留作习题.

posted @ 2023-04-20 17:34  EntropyIncreaser  阅读(319)  评论(0编辑  收藏  举报