欧拉函数,逆元,扩展欧几里得,中国剩余定理....OI中的数论知识

本文深入探讨了欧拉函数的定义及其与互质数的关系,通过实例证明欧拉函数公式,并介绍了欧拉定理的应用,如费马小定理和逆元概念。此外,文章还讲解了扩展欧几里得算法、裴蜀定理、中国剩余定理,以及这些数论工具在解决实际问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欧拉函数

Ψ(n) 表示不小于n的自然数中,与n互质的数的个数

若一个整数N可以表示为:
N=p1α1p2α2...pnαn N=p_{1}^{α_{1}}p_{2}^{α_{2}}...p_{n}^{α_{n}} N=p1α1p2α2...pnαn
则有欧拉函数;
Ψ(n)=N(1−1p1)(1−1p2)...(1−1pn) Ψ(n) =N(1- \frac{1}{p_{1}})(1- \frac{1}{p_{2}})...(1- \frac{1}{p_{n}}) Ψ(n)=N(1p11)(1p21)...(1pn1)
证明方法:
1.在1−N中的所有数,筛去p1,p2...Pm的所有倍数 1.在1-N中的所有数,筛去p1,p2...P_{m}的所有倍数 1.1Np1,p2...Pm

2.加上所有pi⋅pj的倍数,减去所有pi⋅pj⋅pk的倍数... 2.加上所有p_{i}\cdot p_{j}的倍数,减去所有p_{i}\cdot p_{j} \cdot p_{k}的倍数... 2.pipjpipjpk...

3.化简得Ψ(n)=N(1−1p1)(1−1p2)...(1−1pn) 3.化简得Ψ(n) =N(1- \frac{1}{p_{1}})(1- \frac{1}{p_{2}})...(1- \frac{1}{p_{n}}) 3.Ψ(n)=N(1p11)(1p21)...(1pn1)

欧拉定理

若a与n互质,则有 aΨ(n)≡1(mod n) 若a与n互质,则有\ a^{Ψ(n)} \equiv 1(mod\ n) an aΨ(n)1(mod n)

证明如下:
由欧拉函数得到得Ψ(n)个数a1a2...aΨ(n)≡1(mod n) 由欧拉函数得到得Ψ(n)个数 a_{1}a_{2}...a_{Ψ(n)}\equiv 1(mod\ n) Ψ(n)a1a2...aΨ(n)1(mod n)

则a1到an皆有a∗a1≡1(mod n)...a∗aΨ(n)≡1(mod n) 则a_{1}到a_{n}皆有a*a_{1}\equiv 1(mod\ n)...a*a_{Ψ(n)}\equiv1(mod \ n) a1anaa11(mod n)...aaΨ(n)1(mod n)

以上两式关于n同余,因此消去1a2...aΨ(n)得到:aΨ(n)≡1(mod n) 以上两式关于n同余,因此消去_{1}a_{2}...a_{Ψ(n)}得到:a^{Ψ(n)}\equiv 1(mod \ n) n1a2...aΨ(n)aΨ(n)1(mod n)

由此我们可以由此推导出费马小定理

当n为质数的时候,Ψ(n)=n−1,因此有an−1≡1(mod n) 当n为质数的时候,Ψ(n)=n-1,因此有 a^{n-1} \equiv 1(mod \ n) n,Ψ(n)=n1an11(mod n)

逆元

逆元的定义:
若整数b,m互质.对于整数a若满足ab≡a⋅x(mod m) 若整数b,m互质.对于整数a若满足\frac{a}{b}\equiv a\cdot x(mod\ m) b,m.abaax(mod m)
则称x为b mod m的乘法逆元,记作:
ab≡a⋅b−1(mod m) \frac{a}{b} \equiv a\cdot b^{-1} (mod\ m) baab1(mod m)
因此b的逆元x对于b有如下关系:
b⋅x≡1(mod m) b\cdot x \equiv 1(mod\ m) bx1(mod m)
由费马小定理,当m为质数的时候,有:
b⋅bm−2≡bm−1≡1(mod m) b\cdot b^{m-2} \equiv b^{m-1} \equiv 1(mod\ m) bbm2bm11(mod m)

因此此时,bm−2便是b关于m的一个逆元 因此此时,b^{m-2}便是b关于m的一个逆元 bm2便bm

扩展欧几里得算法

裴蜀定理

对于任意正整数a,b,那么一定存在非零整数x,y使得 ax+by = gcd(a,b)

若ax+by=d,则d为a和b的最大公约数的倍数

证明方法:使用扩展欧几里得进行构造
对于求解ax+by=d,经过迭代可以得到by+(a mod b)x=d 对于求解ax+by=d,经过迭代可以得到by+(a \ mod\ b)x=d ax+by=d,by+(a mod b)x=d

整理得到 ax+b(y−[ab]x)=d 整理得到\ ax+b(y-[\frac{a}{b}]x)=d  ax+b(y[ba]x)=d

因此构造出来的 x=x, y=y−[ab] 因此构造出来的\ x=x ,\ y=y-[\frac{a}{b}]  x=x, y=y[ba]

代码如下

int exgcd(int a,int b,int &x,int &y){
    if(!b){
        x=1,y=0;
        return a;
    }
    int d=exgcd(b,a%b,y,x);
    y-=a/b*x;
    return d;
}

中国剩余定理

m1,m2...mk两两互质,求解方程组 m_{1},m_{2}...m_{k}两两互质,求解方程组 m1,m2...mk

x≡a1(mod m) x\equiv a_{1} (mod\ m) xa1(mod m)

x≡a2(mod m) x\equiv a_{2} (mod\ m) xa2(mod m)

... ... ...

x≡ak(mod m) x\equiv a_{k} (mod\ m) xak(mod m)

求解过程:
令M=m1m2...mk 令M=m_{1}m_{2}...m_{k} M=m1m2...mk

Mi=M/mi M_{i}=M/m_{i} Mi=M/mi

Mi−1表示Mi modmi 的逆 M_{i}^{-1}表示M_{i}\ mod m_{i} \ 的逆 Mi1Mi modmi 

则通解为:
x=a1M1M1−1 +... + akMkMk−1 x=a_{1}M_{1}M_{1}^{-1}\ + ...\ +\ a_{k}M_{k}M_{k}^{-1} x=a1M1M11 +... + akMkMk1

因此我们可以使用扩展欧几里得求Mi的逆元,从而求解问题 因此我们可以使用扩展欧几里得求M_{i}的逆元,从而求解问题 使Mi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值