邻家の躺平人对《编程珠玑(续)》的笔记(2)
-
第5页
第一段倒数第二句:
原文:
翻译明显拗口啊,用的google translation么?
-
第12页
第二题的C问中,O(nloglogn)的复杂度可以这么推出:
p = 2; while (p <= n) { for (i = 2 * p; i <= n; i += p) x[i] = 0; do p++; while (!x[p]); }
这是经过处理后的代码,主要是便于分析。容易知道,只需要分析x[i] = 0;的运行次数即可。 T(n) = n/2 + n/3 + ... + n/p, 其中p为不大于n最大的素数。然后我们有 T(n) = n(1/2 + 1/3 +..+ 1/p) *fix:吃饭时突然想到刚才右半部分的证明是不对的,特此更正下。 右边的其实是有专业术语的,称之为:素数调和级数,渐进于O(loglogn).欧拉给出了一个下界(非函数增长上的渐进下界,不过可以由此得到Omega)。 http://en.wikipedia.org/wiki/Prime_harmonic_series 如果 log_{a}n = O(logn) => log_{b}n = O(logn),其中a,b均>1 对于d,目前已知最好的方法是进行素性测试。该测试基于费马小定理,并且可以在现行时间内完成测试,不过没有100%正确的概率。然后可以进行大量独立重复测试,将概率控制在接受范围之内。
邻家の躺平人的其他笔记 · · · · · · ( 全部163条 )
- Linux高性能服务器编程
- 4
- 程序员的自我修养
- 3
- 深入理解C++11
- 4
- WebKit技术内幕
- 2
- Exceptional C++(中文版)
- 1
- Windows核心编程
- 2
- 深度探索C++对象模型
- 6
- Effective STL
- 5
- 操作系统概念
- 2
- 现代操作系统
- 3
- 算法设计与分析基础
- 8
- Introduction to Algorithms (3/e)
- 20
- 正则指引
- 1
- Python入门经典
- 1
- Discrete Mathematics and Its Applications
- 1
- 程序设计实践
- 2
- C++编程思想第2卷
- 2
- 编译原理
- 2
- 算法设计与分析基础
- 1
- 算法导论(原书第2版)
- 3
- 离散数学及其应用(原书第5版)
- 14
- C++应用程序性能优化
- 4
- Windows程序设计
- 3
- C++标准程序库
- 3
- 数据结构与算法分析
- 17
- Thomas' Calculus (11th Edition)
- 2
- Intel汇编语言程序设计
- 3
- Windows编程启示录
- 2
- Windows编程启示录
- 1
- 概率导论
- 5
- 计算机的心智
- 5
- 数据结构与算法分析
- 1
- 高等数学引论(第一册)
- 8
- Effective C++
- 1
- Effective C++
- 2
- C和指针
- 3
- 编程珠玑
- 11
- 算法之道
- 2
- Professional C# 2008
- 1