LOADING

加载过慢请开启缓存 浏览器默认开启

8.求和与渐近

求和和渐近符号的介绍。

调和级数

一些木块通过堆叠能超出桌子多长?一种处理方法是贪心法,从最上方开始,移动直到不能移动为止。

记末状态第 $k$块距离桌子边缘的距离为$r_k$,贪心下上面$k-1$块质心应该恰好在第$k$ 块的边缘。$c_k=r_{k+1}$ 。那么利用质心的定义,有:

$$ c_k=\frac{(k-1)c_{k-1}+1\cdot (r_k-\frac{1}{2})}{k} $$

代入 $c_k=r_{k+1}$ 得到:

$$ r_{k+1}=r_k-\frac{1}{2k} $$

也就是说第 $k$块比第$k+1$块多了$\frac{1}{2k}$。那么利用$r_{n+1}=0$ 就有:

$$ r_1=\sum_{i=1}^n \frac{1}{2i} $$

实际上,求和

$$ H_n=\sum_{i=1}^n \frac{1}{i} $$

被称为调和级数。他是发散的,因为 $\frac{1}{i}$从$k$加到$2k$一定大于$\frac{1}{2}$。 如果注意力涣散注意不到这一点,我们可以使用积分估计。由于$f(1)=1,f(n)=\frac{1}{n}$ ,并计算

$$ \int_1^n \frac{dx}{x}dx=ln(n) $$

那么就得到

$$ \frac{1}{n}+ln(n)\leq H_n\leq 1+ln(n) $$

也就是说,$H_n\sim ln(n)$,这也给出了$H_n$ 发散的证据。同时,他们的差是收敛的,也就是欧拉常数:

$$ \gamma = \lim_{n \to \infty} \left( \sum_{k=1}^{n} \frac{1}{k} - \ln(n) \right) $$

阶乘

我们熟知的

$$ n!=\prod_{i=1}^ni $$

并不能很好地看出 $n!$ 有多大,一种简单的想法是取对数得到

$$ ln(n!)=\sum_{i+1}^nln(i) $$

然后我们运用积分估计,$f(x)=ln(x)$ ,计算

$$ \int_1^nlnxdx=(xln(x)-x)\bigg|_1^n=nln(n)-n+1 $$

那么就是

$$ nln(n)-n+1\leq ln(n!)\leq ln(n)+nln(n)-n+1 $$

还原成阶乘就得到

$$ \frac{n^n}{e^{n-1}}\leq n!\leq \frac{n^{n+1}}{e^{n-1}} $$

这就清楚多了。但实际上可以更加精确。

斯特林公式(Stirling’s Formula)

$$ n!=(\frac{n}{e})^n\cdot \sqrt{2\pi n}\cdot e^{\epsilon(n)} $$

其中 $\frac{1}{12n+1}\leq \epsilon(n)\leq \frac{1}{12n}$,从而$n$较大的时候$e^{\epsilon(n)}$ 几乎可以忽略。那么就有

$$ n!\sim\sqrt{2\pi n}(\frac{n}{e})^n $$

渐近记号

我们已经熟悉了

波浪号(tilde)

$$ f(x)\sim g(x)\ \ \text{if } \lim_{x\to \infty} \frac{f(x)}{g(x)}=1 $$

大 $O$ 记号

$$ f(x)=O(g(x))\ \ \text{ if} \lim_{x\to \infty}|\frac{f(x)}{g(x)}|<\alpha \ \ \text{(finite)} $$

就是说 $f(x)$增长得没有$g(x)$快。记号可能是$f(x)\leq O(g(x))$(但不会写大于)或者$f(x)\ \text{is } O(g(x))$或者$f(x)\in O(g(x))$ 。要证明,只要考虑比值极限是否有限即可。

例如, $10^i x^2=O(x^2)$ ,$x^i=O(e^x)$ ,$10=O(1)$,其中$i$ 是常数。

$\Omega$ 记号

$$ f(x)=\Omega (g(x))\ \ \text{ if} \lim_{x\to \infty}|\frac{f(x)}{g(x)}|>0 $$

与大 $O$对应,表示了增长的下界。所以对应的可以说$f(x)\geq \Omega(g(x))$ 。
Thm : $f(x)=O(g(x)) \text{ 当且仅当 } g(x)=\Omega(f(x))$ .

$\Theta$记号$f(x)=\Theta(g(x))$如果既有$O$又有$\Omega$,也就是比值的极限大于$0$ 而且有限。

$$ \begin{aligned} \text{总结: } & \text{忽略常数,可以简单类比:} \\ O & \text{ means } \le \\ \Omega & \text{ means } \ge \\ \Theta & \text{ means } = \end{aligned} $$

那么自然就会想到还有小于号和大于号。对应就是 $o$和$\omega$ 。

$o$ 记号

$$ f(x)=o(g(x))\ \ \text{if } \frac{f(x)}{g(x)}=0 $$

$\omega$ 记号

$$ f(x)=\omega(g(x))\ \ \text{if } \frac{f(x)}{g(x)}=\infty $$

一个神秘的证明:

设 $f(n)=\sum_{i=1}^n i$,那么$f(n)=O(n)$ 。

[!证明]
利用归纳法。
归纳假设为 $P(n): f(n)=O(n)$ 。

奠基步:$f(1)=O(1)$ 显然成立。

归纳步:假设 $P(k)$ 成立,$f(k+1)=f(k)+k+1=O(n)+O(n)=O(n)$
从而由归纳公理,命题成立。

归纳假设假定了 $n$ ,这实际上是不合理的。

所以尽量不要在归纳法中运用渐近记号。