数学部分简介
在 OI/ACM 的各种比赛中,常常会有数学题的出现。
这些数学题以数论、排列组合、概率期望、多项式为代表,可以出现在几乎任何类别的题目中。
举几个栗子:
- 多项式可以优化卷积形式的背包,可以做一些字符串题。
- 很多 DP 类型的题都可以结合排列组合/概率期望。
以下是你可以在本部分找到的知识(部分未完成,待补充)¶
- 进制:多种进制的介绍与互相转化。
- 位运算:二进制下的按位运算(与、或、非等)。
- 高精度:当数字过大,语言变量类型不足以存储时的处理方法。
- 整除:质数、最大公约数、欧拉函数与欧拉定理、(类)欧几里德算法。
- 同余:裴蜀定理、逆元、中国剩余定理、大步小步(BSGS)算法、阶与原根。
- 线性代数基础:矩阵、高斯消元(矩阵/概率期望)、线性基。
- 复数与复平面
- 数论反演:主要有莫比乌斯反演。
- 筛法:埃氏筛、欧拉筛(线性筛)、杜教筛/洲阁筛。
- 多项式:快速傅里叶变换(FFT)、快速数论变换(NTT),拉格朗日插值、多项式的各种变换。
- 组合数学:排列组合、卡特兰数、斯特林数、康托展开、容斥原理、抽屉原理。
- 概率与期望
- 置换
- 线性规划
- 单纯形算法
- 博弈论算法
- 快速幂算法
- 向量
- 极坐标与极坐标系
- 其他算法
OI 中的数学以高中,大学的数学为基础,考察选手对数学知识的掌握,利用计算机的计算能力来解决问题。
NOIP 中有可能会考察的知识点¶
然而 NOIP 可能考察更多的知识点,这里只是利用之前的题总结出来的,考过或者考的概率比较大的知识点。
NOIP 对数学的考察还处在一个比较简单的范围。
- 进制相关——通常是利用进制优化一些问题,博弈论中也多有涉及
- 位运算——状压常用,数据范围较小时可以用来表示状态
- 高精度——不包括需要利用多项式的高精度,其思想类似于纸笔模拟计算
- 整除性质—— \gcd , \operatorname{lcm} ,欧拉函数,费马小定理,筛素数,应用颇广
- 同余相关——exgcd,逆元,中国剩余定理,解同余方程组
- 概率期望——概率 DP,以及有可能用到高斯消元解决的概率 DP
- 排列组合——杨辉三角,二项式定理,卢卡斯定理,卡特兰数
- 数论问题——素数(质数),快速幂,找规律
常见符号¶
在学习数论的过程中大家会见到许多复杂的公式符号。因此在学习具体内容之前,建议大家首先理解下列常见符号的含义。一些特殊的符号会在对应的章节中讲到,而这里则有一些极为常见的符号需要大家提前掌握。
复杂度函数¶
- 大 O 符号:当且仅当存在正实数 M 和实数 x_0 ,使得 \forall x\geq x_0,\ |f(x)|\leq M|g(x)| ,我们就可以认为, f(x)=O(g(x)) 。
- 大 \Omega 符号:当且仅当存在正实数 M 和实数 x_0 ,使得 \forall x\geq x_0,\ f(x)\geq Mg(x) ,我们就可以认为, f(x)=\Omega (g(x)) . 大 O 与大 \Omega 恰好相反,即 f(x)=O(g(x))\Leftrightarrow g(x)=\Omega(f(x)) 。
- 大 \Theta 符号:大 \Theta 符号是大 \text{O} 和大 \Omega 的结合,即 f(x)=O(g(x))\wedge f(x)=\Omega(g(x))\ \Rightarrow f(x)=\Theta(g(x)) 。
整除/同余理论常见符号¶
- 整除符号: x\mid y ,表示 x 整除 y ,即 x 是 y 的因数。
- 取模符号: x\bmod y ,表示 x 除以 y 得到的余数。
- 互质符号: x\perp y ,表示 x , y 互质。
- 最大公约数: \gcd(x,y) ,在无混淆意义的时侯可以写作 (x,y) 。
- 最小公倍数: \operatorname{lcm}(x,y) ,在无混淆意义的时侯可以写作 [x,y] 。
数论函数常见符号¶
求和符号: \sum 符号,表示满足特定条件的数的和。举几个例子:
- \sum_{i=1}^n i 表示 1+2+\dotsb+n 的和。其中 i 是一个变量,在求和符号的意义下 i 通常是 正整数或者非负整数 (除非特殊说明)。这个式子的含义可以理解为, i 从 1 循环到 n ,所有 i 的和。这个式子用代码的形式很容易表达。当然,学过简单的组合数学的同学都知道 \sum_{i=1}^n i=\frac{n(n+1)}{2} 。
- \sum_{S\subseteq T}|S| 表示所有被 T 包含的集合的大小的和。
- \sum_{p\le n,p\perp n}1 表示的是 n 以内有多少个与 n 互质的数,即 \varphi(n) , \varphi 是欧拉函数。
求积符号: \prod 符号,表示满足特定条件的数的积。举几个例子:
- \prod_{i=1}^ni 表示 n 的阶乘,即 n! 。在组合数学常见符号中会讲到。
- \prod_{i=1}^na_i 表示 a_1\times a_2\times a_3\times \dotsb\times a_n 。
- \prod_{x|d}x 表示 d 的所有因数的乘积。
在行间公式中,求和符号与求积符号的上下条件会放到符号的上面和下面,这一点要注意。
其他常见符号¶
- 阶乘符号 ! , n! 表示 1\times 2\times 3\times \dotsb \times n 。
- 向下取整符号: \lfloor x\rfloor ,表示小于等于 x 的最大的整数。常用于分数,比如分数的向下取整 \left\lfloor\frac{x}{y}\right\rfloor 。
- 向上取整符号: \lceil x\rceil ,与向下取整符号相对,表示大于等于 x 的最小的整数。
温馨提示¶
在「基础知识」一栏中介绍了在 OI 中可能用到的重要高中数学知识。
如果您是高中 OIer,强烈建议您回班级听课,相比于自学,老师讲课可以使您理解得更透彻。
该栏目按照从必修到选修的顺序介绍。所有内容均基于《普通高中课程标准实验教科书 数学》(人教 A 版)。
另外,还请大家学好高一数学,这样学习数论的时侯会省很多功夫。
build本页面最近更新:,更新历史
edit发现错误?想一起完善? 在 GitHub 上编辑此页!
people本页面贡献者:OI-wiki
copyright本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用