利用对数求解指数:推导h=log(log(n))的疑问
推导 $h = \log(\log(n))$ 的步骤
嘿,这个推导其实得先把指数的嵌套关系理清楚(原公式的排版可能有点歧义,正确的应该是 $n{(1/2)h} = 2$,这样才能得到目标结果),咱们一步步拆开来算就明白了:
第一步:从给定等式出发,两边取对数(算法分析里log通常默认以2为底)
原等式:$n{(1/2)h} = 2$
对两边取$\log_2$,根据对数的幂法则($\log_a(b^c) = c \cdot \log_a(b)$),左边可以展开:
$$\log_2\left(n{(1/2)h}\right) = \log_2(2)$$
化简后得到:
$$(1/2)^h \cdot \log_2(n) = 1$$第二步:整理等式,把指数项单独放一边
把$\log_2(n)$移到右边:
$$(1/2)^h = \frac{1}{\log_2(n)}$$
注意到$(1/2)h$等价于$2{-h}$,两边取倒数后得到:
$$2^h = \log_2(n)$$第三步:再次取对数求解h
现在两边再取一次$\log_2$:
$$\log_2(2^h) = \log_2\left(\log_2(n)\right)$$
左边根据$\log_a(a^k)=k$,直接化简为h,最终得到:
$$h = \log_2\left(\log_2(n)\right)$$
如果题目里的log是自然对数或者其他底数,形式上会是$\log(\log(n))$,本质逻辑是一致的。
内容的提问来源于stack exchange,提问作者Bob Dole
相关产品推荐
相关产品推荐

