手动博客搬家: 本文发表于20181110 16:13:39, 原地址https://blog.csdn.net/suncongbo/article/details/83930408

声明:博主写这个博客的理由只是为了缓解心情,大部分的东西都是我手推的,没有验证过,如果有问题敬请指出。

Noip2018day1完挂,非常难受,过来写个博客颓一下,缓解心情

1. 调和级数
调和级数\(H_n=\sum^{n}_{i=1} \frac{n}{i}=O(n\log n)\)
这个怎么证……抱歉蒟蒻真不会……感性理解就是\(1+\frac{1}{2}+\frac{1}{4}+\frac{1}{4}+\frac{1}{8}+\frac{1}{8}+\frac{1}{8}+\frac{1}{8}+...<1+\frac{1}{2}+\frac{1}{3}+...<1+\frac{1}{2}+\frac{1}{2}+\frac{1}{4}+\frac{1}{4}+\frac{1}{4}+\frac{1}{4}+\frac{1}{8}+\frac{1}{8}+\frac{1}{8}+\frac{1}{8}+\frac{1}{8}+\frac{1}{8}+\frac{1}{8}+\frac{1}{8}...\)
不过调和级数\(\sum^{n}_{i=1} \frac{n}{i}\)是微积分中\(\int^n_{1} \frac{1}{x} dx\)的离散模拟。(这话这么说对吗……抱歉蒟蒻非常菜鸡啥都不会)

然后考虑一个推广的情形: \(T(n)=\sum^{n}_{i=1} (\frac{n}{i})^k\)

2. \(0<k<1\)
\(k<1\)时,我们化简一下式子:仍然考虑转化为积分式,\(n^k\int^{n}_{1} x^{-k} dx=n^k\frac{1}{1-k}n^{1-k}=\frac{1}{1-k}n=O(n)\)
例如,数论中经常碰到某算法时间复杂度为\(\sum^{n}_{i=1} \sqrt{\frac{n}{i}}\), 该复杂度即为\(O(n)\).
但是请注意,当\(k\)接近\(1\)的时候,\(O(n)\)的背后将隐藏着巨大的常数……比如\(k=0.99\) , 实验表明当\(n\)比较小的时候\(k=0.99\)\(k=1\)差别并不大,但是理论上来说当\(n\)趋近于\(+\inf\)时,前者和\(n\)的比值将收敛于大约\(100\), 后者和\(n\)的比值将发散。

3. \(k>1\)
\(k>1\)时, \(n^k\int_1^n x^{-k} dx=O(n^k)\)
因此,\(k>1\)\(\frac{n}{k}\)的影响几乎可以忽略。不过同理\(k\)接近\(1\)时也会有大常数。

好了心情恢复一点了,继续等待明天的GG……