算法灵魂源自数学--数论数学笔记
数论数学笔记
整数的可除性
整除的概念及欧几里得除法
整除定义
设 a,ba,b 是任意两个整数,其中 b≠0.b≠0. 如果存在一个整数 qq 使得等式
a=q⋅ba=q⋅b
成立,就称 bb 整除 aa,记作 b∣ab∣a,
- 把 bb 叫做 aa 的因数,
- 把 aa 称为 bb 的倍数
否则,就称 bb 不能整除 aa,记作 b∤ab∤a
定理
-
整除具有传递性
设a,b,c≠0是三个整数,有b∣a,c∣b⇒c∣a设a,b,c≠0是三个整数,有b∣a,c∣b⇒c∣a
-
在加法、减法运算,整除的性质是保持的
设a,b,c≠0是三个整数,有c∣a,c∣b⇒c∣a±b设a,b,c≠0是三个整数,有c∣a,c∣b⇒c∣a±b
-
在线性组合中,整除的性质是保持的
设a,b,c≠0是三个整数.若c∣a,c∣b,则对任意整数s,t,有c∣(s⋅a+t⋅b).
推广:
设整数c≠0.若整数a1,...,an都是整数c的倍数,则对任意n个整数s1,...,sn,整数s1a1+...+snan是c的倍数.
设a,b都是非零整数.若a∣b,b∣a,则a=±b.
素数与合数的定义
设整数n≠0,±1.如果除了显然因数±1和±n外,n没有其他因数,那么称n为素数【质数】,否则叫做合数
如果没有特殊声明,素数一般是指正整数,通常写作 p
定理
-
每个合数必定有素因子
设n是一个正和数,p是n的一个大于1的最小正因数,则p一定是素数,且p一定是素数,且p⩽√n
-
厄拉托塞师 【 Eratoshenes 】 筛法依据
设n是正整数.如果对所有的素数p√n,都有p∤n,则n一定是素数.
-
素数有无穷多个.
-
欧几里得除法
设a,b是两个整数,其中b>0,则存在唯一的整数q,r使得
a=q⋅b+r,0⩽r<b
不完全商和余数定义
在 欧几里得除法 的公式中 q 叫做 a 被 b 除所得的 不完全商,r 叫做 a 被 b 除所得的余数
推理:在欧几里得除法的条件下,b∣a 的充要条件是 a 被 b 除所得的余数 r=0.
引入一个数学符号
设x是实数.称x的整数部分为小于或等于x的最大整数,记成[x],此时,有
[x]⩽x<[x]+1
则在欧几里得除法中的不完全商 q 可以写作 q=[ab],余数 r 可以写为 r=a−[ab].
素数的平凡判别:
对于给定正整数 N,设不大于 √N 的所有素数为 p1,p2,⋯,ps. 如果 N 被所有 pi 除的余数都不为零,即 pi∤n,1⩽i⩽s,则 N 是素数
定理:
-
运用欧几里得除法时,余数取其它形式
设a,b是两个整数,其中b>0.则对任意的整数c,存在唯一的整数q,r使
a=a⋅b+r,c⩽r<b+c
最大公因数与广义欧几里得除法
最大公因数
设a1,...,an是n(n⩾2)个整数.若整数d是它们中每一个数的因数,则d就是a1,...,an的一个公因数.
d是a1,...,an的一个公因数的数学表达式为
d∣a1,...,d∣an
如果整数a1,...,an不全为零,那么整数a1,...,an的所有公因数中最大的一个公因数称作 最大公因数
记住(a1,...,an)当(a1,...,an)=1,称a1,...,an 互素或互质
定理
- 设a,b是两个整数,则有(0,b)=b
广义欧几里得除法
设a,b是任意两个正整数,记r−2=a,r−b=b,反复运用欧几里得除法,必然存在n使得rn+1=0
- 设a,b是任意两个正整数,则(a,b)=rn,并且a>b时,计算(a,b)的时间为O(logalog2b).
Bˆezout 等式
设a,b是任意两个正整数,则存在s,t使得
s⋅a+t⋅b=(a,b)
-
整数a,b互素的充分必要条件是存在整数s,t使得
sa+tb=1
最大公因数性质
设a,b是任意两个不全为零的整数,d是正整数,则d是整数a,b的最大公因数的充要条件是
- d∣a,d∣b
- 若e∣a,e∣b,则e∣d
互素整数构造 (a(a,b),b(a,b))=1
设a,b和u,v都是不全为零的整数,如果
a=q⋅u+r⋅v,b=s⋅u+t⋅v
其中q,r,s,t是整数,且q⋅t−r⋅v=1,则(a,b)=(u,v)
整除的进一步性质及最小公倍数
最小公倍数
设 a1,...,an 是 n 个整数. 若 D 是这 n 个数的倍数,则 D 叫做这 n 个数的公倍数.
在 a1,...,an 的公倍数中最小正整数叫做最小公倍数,记作 [a1,...,an]
定理
-
设a,b是两个整数,且(a,b)=1.则
- 若a∣D,b∣D,则a⋅b∣D
- [a,b]=a∣b
最小公倍数 与 最大公因数
设a,b是两个正整数,则
若a∣D,b∣D,则[a,b]∣D.
[a,b]=a⋅b(a,b)
素数分解
给定正合数n>1.如果存在整数a,b使得
n∣a2−b2,n∤a−b,n∤a+b
则(n,a−b)和(n,a+b)都是n的真因数
-
标准分解式
任意整数n>1可以唯一地表示成
n=pα11⋯pαss,αi>0,i=1,...,s
其中pi<pj(i<j)是素数
-
因数个数
设正整数n有因数分解式
n=pα11⋯pαss,αi>0,i=1,...,s
则n的因数数量
d(n)=(1+α1)⋯(1+αs)
-
最小公因数与最大公倍数
设a,b是两个正整数,且都因式分解
n=pα11⋯pαss,αi>0,i=1,...,s
n=pβ11⋯pβss,βi>0,i=1,...,s
则
(a,b)=pγ11⋯pγss,γi=min(αi,βi),i=1,...,s
[a,b]=pδ11⋯pδss,δi=max(αi,βi),i=1,...,s
素数定理
limx→∞π(x)xlnx=1
同余式
同余的概论和及基本性质
同余定义
给定一个正整数m,两个整数a,b叫做模m同余
如果a−b被m整除,或m∣a−b,就记作a≡(modm).否则,叫做模m不同余,记住a≢b(modm)
同余性质
-
设m是一个正整数,设d⋅a≡d⋅b(modm).如果(d,m)=1,则
a≡b(modm)
-
设m是一个正整数,设a≡(modm),d>0,则
d⋅a≡d⋅b(modd⋅m)
-
设m是一个正整数,设a≡b(modm).如果整数d∣(a,b,m)
ad≡bd(modmd)
-
设a≡b(modm),则
(a,m)=(b,m)
剩余类和完全剩余系
设m是一个正整数,则
- 任意整数必包含在一个Cr中,0⩽r⩽m−1;
- Ca=Cb的充分必要条件是a≡b(modm)
- Ca与Cb的交集为空集的充分必要条件是a≢b(modm)
剩余系与剩余
Ca叫做模m的a的剩余类.一个剩余系中的任意数叫做该类的 剩余 或 代表元. 若r0,r1,⋅,Cm−1是m个整数,并且其中任何两个数都不在一个剩余类里,则r0,⋅,rm−1叫做模m的 完全剩余系
欧拉函数
设m是一个正整数,则m个整数1,⋅,m−1,m中与m互素的整数的个数,记作φ(m),通常叫 做欧拉函数
定理
-
对于素数幂m=pα,有
φ(m)=pα−pα−1=m∏p∣m(1−1p)
简化剩余系
一个模m的剩余系叫做 简化剩余类, 如果该类中存在一个与m互素的剩余.这时简化剩余类中的剩余叫做 简化剩余
设m是一个正整数.在模m的所有不同简化剩余类中,从每个类任取一个数组成的整数的集合,叫做模m的一个 简化剩余系
元素个数为φ(m)
定理
-
设m是一个正整数,a是满足(a,m)=1的整数,则存在唯一的整数a′,1⩽a′<m使得
a⋅a′≡1(modm)
欧拉定理性质
设正整数m的标准因数分解式为
m=∏p∣mpα=pα11⋯pαsk,
φ(m)=pα−pα−1=m∏p∣m(1−1p)=m(1−1p1)⋯(1−1pk)
Euler
设m是大于1的整数.如果a是满足(a,m)=1的整数,则
aφ(m)≡1(modm)
Fermat
设p是一个素数,则对任意整数a,有
ap≡a(modp)
Wilson
设p是一个素数,则
(p−1)!≡−1(modp)
同余式
基本概念及一次同余式
同余式的基本概念
设m是一个正整数,f(x)为多项式
f(x)=anxn+⋯+a1x+a0
其中ai是整数,则
f(x)≡0(modm)
称之为 同余式 .若an≢0(modm),则n叫做f(x)的 次数 ,记作degf.此时称式子为模m的n 次同余式
定理
-
设m是一个正整数,a是满足m∤a的整数,则一次同余式
ax≡1(modm)
有解的充分必要条件是
(a,m)=1.且当同余式有解,其解唯一
逆元
设m是一个正整数,a是一个整数.如果存在整数a′使得
a⋅a′≡a′⋅a≡1(modm)
成立,则a称为模m的 可逆元
a′称为a的模m 逆元
定理
-
设m是一个正整数,则
整数a是模m简化剩余⟺整数a是模m逆元
-
通常的一次同余式求解
设m是一个正整数,a是满足m∤a的整数,则一次同余式
ax≡1(modm)
有解的充要条件是(a,m)∣b,解为
x≡b(a,m)⋅((a(a,m))−1(modm(a,m)))+t⋅m(a,m)(modm),t=0,1,⋯,(a,m)−1
中国剩余定理
设m1,⋯,mk是k个两两互素的正整数,则对任意整数b1,⋯,bk,同余式组
{x≡b1(modm1)⋮x≡bk(modmk)
有唯一解
令
m=m1⋯mk,m=mi⋯Mi,i=1,⋯,k
则解表示为
x≡b1⋅M′1⋯M1+b2⋅M′2⋯M2+⋯+bk⋅M′k⋯Mk(modm)
高次同余式的解数及解法
高次同余式的解数
设m1,⋯,mk是k个两两互素的正整数,m=m1⋯mk,同余式
f(x)≡0(modm)
与同余式组
{f(x)≡0(modm1)⋮f(x)≡0(modmk)
等价.如果用Ti表示同余式
f(x)≡0(modmi)
的解数i=1,⋯,k,T表示同余式的解数,则
T=T1⋯Tk
高次同余式的提升
设x≡x1(modp)是同余式
f(x)≡0(modp)
的一个解,且
(f′(x),p)=1
则同余式有解为
x≡xα(modpα)
其中xα由下面的关系式递归得出
xi≡xi−1+ti−1⋅pi−1(modpi),i=2,⋯,α
ti−1≡−f(xi−1)pi−1⋅(f′(x1)−1(modp))(modp)i=2,⋯,α
二次同余式与平方剩余
一般二次同余式
平方剩余
设m是正整数.若同余式
x2≡a(modm),(a,m)=1
有解,则a称为模m的 平方剩余【二次剩余】 ;否则称为 平方非剩余【二次非剩余】
模为奇素数的平方剩余与平方非剩余
欧拉判别条件
设p是奇素数,(a,m)=1,则
a是模p的平方剩余⟺ap−12≡1(modp)
a是模p的平方非剩余⟺ap−12≡−1(modp)
并且,当a是模p的平方剩余,恰有二解
推论
设p是奇素数,(a1,m)=1,(a2,m)=1则
- 如果a1,a2是模p的平方剩余⟹a1⋅a2是模p的平方剩余
- 如果a1,a2是模p的平方非剩余⟹a1⋅a2是模p的平方剩余
- 如果a1是模p的平方剩余,a2是模p的平方非剩余⟹a1⋅a2是模p的平方非剩余
勒让得符号
设p是素数,定义Legendre符号(ap){1,若a是模p的平方剩余;−1,若a是模p的平方非剩余;0,若p∣a
定理
-
欧拉判别法则
设p是奇素数,则对任意整数a,
(ap)≡ap−12(modp)
-
设p是奇素数,则
周期性(a+pp)=(ap)
完全可乘性(a⋅bp)=(ap)(bp)
设(a,p)=1,则(a2p)=1
高斯引理
设p是奇素数,整数a,(a,p)=1,如果整数
a⋅1,a⋅2,⋯,a⋅p−12
中模p的最小正剩余大于p2的个数是m,则
(ap)=(−1)m
二次互反律
若p,q是互素奇素数,则
(qp)=(−1)p−12⋅q−12(pq)
雅可比符号
设m=p1⋯pr是奇素数pi的乘积.对任意整数a,定义Jacobi符号
(am)=(ap1)⋯(qpr)
模平方根
-
模 p 平方根
设p是形为4k+3的素数,如果同余式
x2≡a(modp)
有解,则其解是
x≡±ap+14(modp)
-
模 m 平方根
m是合数的二次同余式
x2≡a(modm),(a.m)=1
当m=2δpα11⋯pαkk时同余式等价于
{x2≡a(mod2δ)x2≡a(modpα11)⋮x2≡a(modpαkk)
设p是奇素数,则同余式x2≡a(modpα),(a,p)=1,α>0有解⟺a是模p的平方剩余
解数为2
原根与指标
指数
m>1是整数,a是与m互素的正整数,则
ae≡1(modm)
成立的最小正整数e称为a对模m的 指数,$记作 ord_m(a) 如果 a 对模m 的指数是 \varphi(m),则 a 叫做模m 的$ 原根
指数的基本性质
m>1是整数,a是与m互素的正整数,则整数d使得
ad≡1(modm)⟺ordm(a)∣d
-
若b≡a(modm),则ordm(a)=ordm(a)
-
设a−1使得−1⋅a≡1(modm),则ordm(a−1)=ordm(a)
-
ad≡ak(modm)⟺d≡k(modordm(a))
-
ordm(ad)=ordm(a)(d,ordm(a))
大指数构造
m>1是整数,a,b是与m互素的正整数,如果(ordm(a),ordm(b))=1,则
ordm(a⋅b)=ordm(a)⋅ordm(b)
设m,n都是大于1的整数,a是与m互素的正整数,则
- 若n∣m,则ordn(a)∣ordm(a)
- 若(m,n)=1,则ordmn(a)=[ordm(a),ordn(a)]
原根
-
设p是奇素数,则模p的原根存在,且有φ(p−1)个原根,其中φ为欧拉函数
-
设p是奇素数,如果整数g是模p原根,则有
gp−1≢1(modp2)or(g+p)p−1≢1(modp2)
素数检验
伪素数
伪素数 Fermat 素性检验
设n是一个奇合数,如果整数b,(b,n)=1使得同余式
bn−1≡1(modn)
成立,则n叫做对基b的 伪素数
Fermat 素性检验
给定奇素数n⩾3和安全参数t
- 随机选取整数b,(b,n)=1,2⩽b⩽n−2
- 计算r=bn−1(modn)
- 如果r≠1,则n是合数
- 上述过程重复t次
Carmicheal 数
和数n称为Carmicheal数,如果对所有的正整数b,(b,n)=1,,都有同余式
bn−1≡1(modn)
成立
定理
设n是一个奇合数
-
如果n被一个大于1平方数整除,则n不是Carmicheal数
-
如果n=p1⋯pk是一个无平方数,则
n是Carmicheal数⟺pi−1∣n−1,1⩽i⩽k
Euler 伪素数
设n是一个正奇合数,如果整数b与n互素,满足
bn−12≡(bn)(modn)
则n称为对于基b的 Euler 伪素数
Solovay-Stassen 素性检验
给定奇素数n⩾3和安全参数t
- 随机选取整数b,(b,n)=1,2⩽b⩽n−2
- 计算r=bn−12(modn)
- 如果r≠1以及r≠n−1,则n是合数
- 计算Jacobi符号s=(bn)
- 如果r≠s,则n是合数
- 上述过程重复t次
强伪素数
设n是一个正奇合数,且有表达式n−1=2st,其中t为奇数.如果整数b与n互素,满足
bt≡1(modn)
或者存在一个整数r,0⩽r⩽s使得
b2rt≡−1(modn)
则n称为对于基b的 强伪素数
连分数
简单连分数
给定一个实数x
- 令a0=[x],x0=x−a0.0⩽x0<1
- 如果x0=0则终止,否则令a1=[1x0],x1=1x0−a1
- 如果x1=0则终止,否则令a2=[1x1],x2=1x1−a2
- 重复上述步骤,得到ak,xk
x=a0+1a1+1a2+1⋱+1an−1+1an+⋯
无限连分数记作[a0,a1,a2,⋯],有限连分数记作[a0,a1,a2,⋯,an−1,an]
设k⩾0(有限简单连分数时,k⩽n),将有限连分数
[a0,a1,a2,⋯,an−1,an]=PkQk
叫做简单连分数的第k个 渐近分数,将ak叫做它的第k个 部分商
定理
-
设α是实数,[a0,a1,a2,⋯,an,⋯]是其简单连分数,则
|α−PkQk|⩽1Q2k
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了