数学知识总结(一)
提高组数学学习笔记
初等数论
同余式
-
基本概念
与 在模 的意义下同余,记作也可简记为
-
同余类、剩余系
-
同余类: 模 同余的所有整数组成的集合称为同余类,共有 个同余类。
-
剩余系: 对于某一个特定的正整数 ,一个整数集中的数模 所得的余数域。
-
完全剩余系: 设 ,若 为 个整数,并且两两模 不同余,则 叫作模 的一个完全剩余系。
-
简化剩余系: 也称既约剩余系或缩系,是 的完系中与 互质的数构成的子集。
-
欧拉定理和欧拉函数
欧拉函数
- 概念:
表示 以内与 互质的数的个数。 - 公式:
- 求法:
- 单个套公式
- 多个线性筛
int phi[N], primes[N], v[N];
phi[1] = 1;
for (int i = 2; i <= n; i++)
{
if (!v[i]) v[i] = i, primes[++cnt] = i, phi[i] = i - 1;
for (int j = 1; j <= cnt; j++)
{
if (v[i] > primes[j]) break;
v[primes[j] * i] = primes[j];
phi[i * primes[j]] = (i % primes[j]) ? (primes[j] - 1) * phi[i] : primes[j] * phi[i];
}
}
欧拉定理
当 互质时,
-
证明:
设 构成 意义下的简化剩余系。所以 也构成 意义下的简化剩余系。
将式子两边的 的简化剩余系消去,就可以得到:
-
推论:
- 互质时,
不互质且 时: - 使得 的最小正整数解 必定满足 。
- 互质时,
费马小定理
一般形式:,当 为素数时成立。
常见形式:,当 为素数且 与 互质时成立。
费马小定理是 为素数的必要非充分条件。
证明:
由欧拉定理 知 成立。
威尔逊定理
- 证明:逆元配对。
- 应用
例题:
给出素数 ,求 ,其中 为比 p 小的最大素数,。
裴蜀定理
一定 成立。
-
证明
- 数学归纳法
- 完全剩余系
-
推论
- 互质的充分必要条件是存在整数 使
- 设 为 个整数, 是它们的最大公约数,那么存在整数 使得 。
- 有解当且仅当
例题:
给定 , 求一个最小的正整数 ,使得 ,如果无解输出 。(阶?)
数据范围:,。
逆元
- 概念
逆元素是指一个可以取消另一给定元素运算的元素
---百度百科
很好理解,比如,一个数和它的相反数互为加法逆元 。
的乘法逆元为满足 的 。
记为 。
-
应用: 除法取模
-
求法:
-
扩欧算法
-
费马小定理(注意:仅在 p 为质数时成立)
-
线性递推:
inv[1] = fac[1] = inv[0] = fac[0] = 1; for (int i = 2; i <= n; i++) inv[i] = (p - p / i) * inv[p % i] % p;
-
扩展欧几里得算法
求解 的一组特解 。
- 通解
对于形如 的方程来说:
它的特解为 ;
它的通解为 。
void exgcd(int a, int b, int &x, int &y)
{
if (b == 0)
return void(x = 1), void(y = 0);
exgcd(b, a % b, x, y);
int z = x;
x = y, y = z - y * (a / b);
}
中国剩余定理(CRT)
假设整数 两两互素,则对于任意的整数 ,方程组:
存在整数解。
我们设 ,$ M_i=\frac{M}{m_i}M_it_i≡1;;(mod;;m_i)$。
可以构造出一个解
- 证明: 展开即可。
int a[], m[], M[];
int CRT()
{
int MUL = 1, TJ = 0;
for (int i = 1; i <= n; i++)
MUL *= m[i];
for (int i = 1; i <= n; i++)
{
int x, y;
M[i] = MUL / m[i];
exgcd(M[i], m[i], x, y);
if (x < 0) x += m[i];
TJ += x * M[i] * a[i];
}
return TJ;
}
组合数学
可重集排列和可重集组合
多重集的排列数
设 是由个,个个组成的可重集。
那么 的全排列个数为
多重集的组合数
从 个元素中选取 个元素,同一元素允许重复选取,产生的组合数量为 。
扩展:不定方程的非负整数解
非负整数解的个数为:
- 证明
鸽巢原理
二项式定理
- 证明:展开使用组合数分析。
容斥原理
-
并集形式
-
交集形式(筛法公式)
-
从筛法公式理解错排公式
卡特兰数
- 定义
长度为 的 序列,满足任意前缀中 的个数不小于 的个数的排列个数为
- 例子
- 括号匹配
- 出栈统计
- 欧拉剖分
组合杂项
- 组合数的线性预处理
LL Combine(int x, int y) {
return fac[x] * inv[x - y] % P * inv[y] % P;
}
void Init()
{
inv[0] = inv[1] = fac[0] = fac[1] = 1;
for (int i = 2; i < N; i++)
{
inv[i] = (P - P / i)% P * inv[P % i] % P;
fac[i] = fac[i - 1] * i % P;
}
for (int i = 2; i < N; i++)
inv[i] = inv[i] * inv[i - 1] % P;
}
- 杨辉三角与组合数
- 组合数的结论
线性代数
矩阵概念
阶矩阵:行数与列数都等于 的矩阵称为 阶矩阵或 阶方阵。
单位矩阵:主对角线上的元素都为 ,其余元素均为 的 阶方阵称为 阶单位矩阵,记为 。
逆矩阵:设 是一个 阶矩阵,若存在另一个 阶矩阵 ,使得:
矩阵的迹: 矩阵 的对角元素之和称为矩阵A的迹( ),记作
特殊矩阵
-
稀疏矩阵
当一个矩阵的绝大部分数值为零,且非零元素呈不规律分布时,则称该矩阵为稀疏矩阵( )
与它相对的一个概念叫稠密矩阵,,那些非零数值占大多数元素的矩阵即是稠密矩阵( )。 -
三角矩阵
三角矩阵( )分为上三角矩阵和下三角矩阵。- 上三角矩阵( )是指主对角线以下元素全为0的矩阵。
- 下三角矩阵( )是指主对角线以上元素全为0的矩阵。
-
对称矩阵
对称矩阵()是指元素以主对角线为对称轴对应相等的矩阵。
矩阵的初等变换
- 交换两行或两列
- 用一个数 乘以某一行
- 用某个数乘以某一行
矩阵的加减乘和转置运算
矩阵的加减乘
-
加减法:对应的位置相加减
-
数乘:每个位置乘以常数
-
矩阵的转置运算:
矩阵 的转置矩阵记为
它是将 的第 行变为第 列,第 列变为第 行所得到的矩阵。 -
矩阵乘法
理解:(与线性方程组之间的关系)
线性方程组的高斯消元法
- 线性方程组求解
- 异或方程组求解
- 与线性空间
题目
妖梦拼木棒
Tag: 组合数
注意数据范围,暴力枚举求解。
GCD
Tag: 欧拉函数
将数拆分表示,观察到互质性质,利用欧拉函数求解。
Devu and flowers
Tag: 容斥原理,组合数
容斥原理,配上可重集组合数,通过状态压缩技巧实现容斥。
矩阵求逆
Tag: 线性代数
球迷购票问题
Tag: 卡特兰数
数学作业
Tag: 矩阵乘法
按钮
Tag: 欧拉定理,阶的概念
裴蜀定理判断有无整数解,利用欧拉定理的性质2求解。
TROKUTI
Tag: 数学性质
斜率不同的三条线必定会构成一个三角形。
相同斜率归为一类,枚举每一个类,答案每次加上
因子和
Tag: 约数和定理
正整数 的所有约数的和为:
最后计算时再用等比数列求和公式即可。
注意特判逆元不存在的情况。
火柴排队
Tag: 排序不等式
设有数列 和 按照升序排列。设 是 乱序排列构成的数列。
则有:
即顺序排列乘积和
大于等于乱序排列乘积和
大于等于错序排列乘积和
。
题目中的式子转化为
显然 始终不改变。
故问题转化为刚刚的排序不等式 。
由 可以确定唯一对应的
然后求解 对应后的下标所构成的序列的逆序对即可。
[模板]扩展欧拉定理
Tag: 扩展欧拉定理
模板题。
前文欧拉定理的性质1。
方差
Tag: 基础数学,线段树
思路比较简单的一道题。
暴力展开需要求的方差的式子,容易发现,只需要维护区间平方和与区间和,线段树或树状数组维护即可。
约数研究
Tag: 整除分块
数据范围其实完全可以再大一点。
中共有 个 的倍数。
故
整除分块的标准形式, 解决。
余数求和
Tag: 整除分块
容易得到:原式
上整除分块。
对于每一块 都有
就可以做了。
回首过去
形如 能表示为十进制有限小数形式,当且仅当 的最简分数形式的分母只含有质因子 。
证明:设有一个分数 满足上述条件。
-
任意十进制有限小数都可以表示成 的形式, 做分子, 做分母时,约分后显然可以表示成 的形式。
-
任意 也可以表示为 的形式。
综上所述, 与十进制有限小数是一一对应的关系,于是命题得证。
思路:
将满足条件的分数表示为 。
其中 只含有质因子 , 不含有质因子 。
且
预处理出 。
考虑枚举 ,然后 while
枚举满足 的 。由于 的个数始终单调递减,故每次 , 即为 的个数。
对于每个这样的 , 有 种可能。于是 。
但是 。。。
设 表示 内 的个数。
将答案表示为 。
想到整除分块。但是 并不连续,所以每一块的 length
即为 内 的个数。容斥 计算即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现