数论
数论
基础数论
基础数论包含了处理整数性质和关系的基本算法。
特点
- 时间复杂度:从
到
不等
- 空间复杂度:通常为
或
- 适用于整数运算、因数分解等场景
分类
| 质数判定 | 判断一个数是否为质数 | |
| 埃氏筛 | 生成质数表 | |
| 欧几里得 | 求最大公约数 | |
| 扩展欧几里得 | 求解线性方程 |
同余运算
同余运算是处理模运算的重要工具。
特点
- 时间复杂度:与具体运算相关
- 空间复杂度:通常为
- 适用于大数运算、密码学等场景
分类
| 快速幂 | 计算幂的模 | 避免溢出 |
| 逆元 | 求解模的倒数 | 费马小定理 |
| 中国剩余定理 | 解模方程组 | 合并同余式 |
| 欧拉函数 | 计算互质数个数 | 积性函数 |
组合数学
组合数学处理计数和排列组合问题。
特点
- 时间复杂度:通常为
或
- 空间复杂度:通常为
或
- 适用于计数、排列、组合等问题
分类
| 组合数 | 计算组合数 | 预处理优化 |
| 卡特兰数 | 计算合法序列 | 递推公式 |
| 斯特林数 | 计算集合划分 | 动态规划 |
| 贝尔数 | 计算集合分组 | 递推计算 |
应用场景对比
基础数论适合:
- 质因数分解
- 最大公约数
- 最小公倍数
- 整数性质判断
同余运算适合:
- 大数运算
- 模运算优化
- 密码学应用
- 周期性问题
组合数学适合:
- 计数问题
- 排列组合
- 序列生成
- 集合划分
选择建议
- 整数性质问题选择基础数论
- 大数运算问题选择同余运算
- 计数问题选择组合数学
- 需要预处理时考虑筛法
- 需要优化时考虑数论函数
牛客代码笔记-牛栋 文章被收录于专栏
汗牛充栋,学海无涯。<br/> 内含算法知识点讲解,以及牛客题库精选例题。<br/> 学习算法,从牛栋开始。
小天才公司福利 1165人发布