数论入门篇
歐幾里得定理
gcd(a,b)=gcd(a%b,b)gcd(a,b)=gcd(a\%b,b)gcd(a,b)=gcd(a%b,b)(a>=b)
給出簡單證明:
可以知道gcd(a,b)<=b且為b的因子gcd(a,b)<=b且為b的因子gcd(a,b)<=b且為b的因子
a=mb+ra=mb+ra=mb+r容易得到左邊的mb部分一定可以被b的所有因子整除,所以不會對結果造成影響,所以得證對于a>=b,gcd(a,b)=gcd(a%b,b)gcd(a,b)=gcd(a\%b,b)gcd(a,b)=gcd(a%b,b)。
遞歸求解,當b=0時返回a即可。
拓展性質:對于a>=b,gcd(a,b)=gcd(a?b,b)\\gcd(a,b)=gcd(a-b,b)gcd(a,b)=gcd(a?b,b)=gcd(a+b,b)gcd(a+b,b)gcd(a+b,b)
即gcd(a+k?b,b)=gcd(a,b)gcd(a+k*b,b)=gcd(a,b)gcd(a+k?b,b)=gcd(a,b),k為整數
裴蜀定理(貝祖定理)
ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b)
對于aaa,bbb的gcd(a,b)gcd(a,b)gcd(a,b),一定存在系數x和y,使得:
ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b)
拓展歐幾里得定理
對貝祖定理系數的求解過程稱為拓展歐幾里得定理
ll exgcd(ll a,ll b,ll &x,ll &y) {if(b==0){x=1;y=0;return a;}else {ll g=exgcd( b, a % b, y, x);y -= a / b * x;return g;} }證明:
ax1+by1=gcd(a,b)ax_1+by_1=gcd(a,b)ax1?+by1?=gcd(a,b)
bx2+(a%b)y2=gcd(a,b)bx_2+(a\%b)y_2=gcd(a,b)bx2?+(a%b)y2?=gcd(a,b)
聯立兩個等式可得:
a?x1+b?y1\quad a\cdot x_1+b\cdot y_1a?x1?+b?y1?
=b?x2+(a%b)y2=b\cdot x_2+(a\%b)y_2=b?x2?+(a%b)y2?
=b?x2+(a?a/b?b)y2=b\cdot x_2+(a-a/b\cdot b)y_2=b?x2?+(a?a/b?b)y2?
=a?y2+b?(x2?a/b?y2)=a\cdot y_2+b\cdot (x_2-a/b\cdot y_2)=a?y2?+b?(x2??a/b?y2?)
可以得到:
x1=y2x_1=y_2x1?=y2?
y1=x2?a/b?y2y_1=x_2-a/b\cdot y_2y1?=x2??a/b?y2?
定理的一些基本應用
1.求xxx模ppp的逆元
2.關于系數的變化
對于 ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b)
兩邊同除以gcd(a,b)gcd(a,b)gcd(a,b),
則a與b變成了素數p和q,
px+qy=1px+qy=1px+qy=1
系數x,y可以隨意變動,
xxx每增大qqq,yyy就減少ppp,反之亦然。
算數基本定理:
一個數可被唯一地表示成若干個素數的乘積。
x=p1cnt1?p2cnt2?p3cnt3???pncntnx=p^{cnt_1}_1*p^{cnt_2}_2*p^{cnt_3}_3*\cdots*p^{cnt_n}_nx=p1cnt1???p2cnt2???p3cnt3?????pncntn??
cnticnt_icnti?表示x分解后的乘積表達式中有cnticnt_icnti?個pip_ipi?.
定理的一些基本應用
1.求出x的因子個數
factorCnt=(cnt1+1)?(cnt2+1)???(cntn+1)factorCnt=(cnt_1+1)*(cnt_2+1)*\cdots*(cnt_n+1)factorCnt=(cnt1?+1)?(cnt2?+1)???(cntn?+1)
2.更好地理解gcd(最大公因數)gcd(最大公因數)gcd(最大公因數)
gcd(a,b)=p1min(cnta1,cntb1)?p2min(cnta2,cntb2)???pnmin(cntan,cntbn)gcd(a,b)=p_1^{min(cnta_1,cntb_1)}*p_2^{min(cnta_2,cntb_2)}*\cdots*p_n^{min(cnta_n,cntb_n)}gcd(a,b)=p1min(cnta1?,cntb1?)??p2min(cnta2?,cntb2?)????pnmin(cntan?,cntbn?)?
3.更好地理解lcm(最小公倍數)lcm(最小公倍數)lcm(最小公倍數)
lcm(a,b)=p1max(cnta1,cntb1)?p2max(cnta2,cntb2)???pnmax(cntan,cntbn)lcm(a,b)=p_1^{max(cnta_1,cntb_1)}*p_2^{max(cnta_2,cntb_2)}*\cdots*p_n^{max(cnta_n,cntb_n)}lcm(a,b)=p1max(cnta1?,cntb1?)??p2max(cnta2?,cntb2?)????pnmax(cntan?,cntbn?)?
費馬小定理
如果p是一個質數,而整數a不是p的倍數,那么1.\\1.1.apmodp=a^p\quad mod\quad p=apmodp=amodpa\quad mod\quad pamodp.
2.\\2.2.ap?1modpa^{p-1}\quad mod\quad pap?1modp=1modp=1\quad mod\quad p=1modp.
應用:
1.求一個數x模p的逆元y
y=xp?2y=x^{p-2}y=xp?2
證明:
x?y=x?xp?2=xp?1modp=1(此處由費馬小定理得出)\quad x*y\\=x*x^{p-2}\\=x^{p-1}mod p\\=1(此處由費馬小定理得出)x?y=x?xp?2=xp?1modp=1(此處由費馬小定理得出)
因為取模運算后的結果已經不能簡單地用除法,所以我們引入了乘法逆元的概念,即你如果在模p條件下想除以一個數,只能用乘以它的逆元代替。
證明可以看下文的完全剩余系
互質的判斷
若gcd(x,y)=1,表明x,y互質gcd(x,y)=1,表明x,y互質gcd(x,y)=1,表明x,y互質
拓展性質:
若x和y互質,x和y互質,x和y互質,
1.gcd(x+y,x?y)=1gcd(x+y,x*y)=1gcd(x+y,x?y)=1
證明:x和y互質表明它們沒有共同的質因子,另z=x?yz=x*yz=x?y,顯然z具有x,y所有的質因子。
而x+yx+yx+y要存在至少一個x或y的因子的條件是:x+yx+yx+y能夠整除這些質因子,但因為x+yx+yx+y合并時,x和y沒有一個共同的質因數,所以相加后這些質數并未能保留,全部變成了別的質因數。所以,gcd(x+y,x?y)=1gcd(x+y,x*y)=1gcd(x+y,x?y)=1.
歐拉函數
定義:對于正整數n,歐拉函數φ(n)是小于n的正整數中與n互質的數的數目.
1.對于素數p,φ(p)=p?1φ(p)=p-1φ(p)=p?1
2.對于素數p,φ(pk)=pk?pk?1φ(p^k)=p^k-p^{k-1}φ(pk)=pk?pk?1
3.若p1p_1p1?與p2p_2p2?互質, 那么φ(p1p2)=φ(p1)φ(p2)φ(p_1p_2)=φ(p_1)φ(p_2)φ(p1?p2?)=φ(p1?)φ(p2?)
證明:如果a與p1互質(a<p1),b與p2互質(b<p2),c與p1p2互質(c<p1p2),則c與數對 (a,b) 是一一對應關系。由于a的值有φ(p1)種可能,b的值有φ(p2)種可能,則數對 (a,b) 有φ(p1)φ(p2)φ(p1)φ(p2)φ(p1)φ(p2)種可能,而c的值有φ(p1p2)φ(p1p2)φ(p1p2)種可能,所以φ(p1p2)φ(p1p2)φ(p1p2)就等于φ(p1)φ(p2)φ(p1)φ(p2)φ(p1)φ(p2)。
4.對于一個有多個質因子的數x,
x(x=p1k1p2k2?pnkn)x(x=p_1^{k_1}p_2^{k_2}\cdots p_n^{k_n})x(x=p1k1??p2k2???pnkn??),
由第三個性質可得:
φ(x)=φ(p1k1)φ(p2k2)?φ(pnkn)φ(x)=φ(p_1^{k_1})φ(p_2^{k_2})\cdots φ(p_n^{k_n})φ(x)=φ(p1k1??)φ(p2k2??)?φ(pnkn??)
由第四個性質可得(n為x不同質因數的個數):
φ(p1k1)φ(p2k2)?φ(pnkn)\quadφ(p_1^{k_1})φ(p_2^{k_2})\cdots φ(p_n^{k_n})φ(p1k1??)φ(p2k2??)?φ(pnkn??)=p1k1(1?1p1)p2k2(1?1p2)?pnkn(1?1pn)=p1k1p2k2?pnkn(1?1p1)(1?1p2)?(1?1pn)=x(1?1p1)(1?1p2)?(1?1pn)=x∏i=1n(1?1pi)\\=p_1^{k_1}(1-\frac{1}{p_{1}})p_2^{k_2}(1-\frac{1}{p_{2}}) \cdots p_n^{k_n}(1-\frac{1}{p_{n}})\\=p_1^{k_1}p_2^{k2}\cdots p_n^{k_n}(1-\frac{1}{p_{1}})(1-\frac{1}{p_{2}})\cdots(1-\frac{1}{p_{n}})\\=x(1-\frac{1}{p_{1}})(1-\frac{1}{p_{2}})\cdots(1-\frac{1}{p_{n}})\\=x\prod_{i=1}^n (1-\frac{1}{p_i})=p1k1??(1?p1?1?)p2k2??(1?p2?1?)?pnkn??(1?pn?1?)=p1k1??p2k2??pnkn??(1?p1?1?)(1?p2?1?)?(1?pn?1?)=x(1?p1?1?)(1?p2?1?)?(1?pn?1?)=x∏i=1n?(1?pi?1?)
同余關系
加法加法加法
1.如果a≡b且c≡da\equiv b 且c \equiv da≡b且c≡d,那么a+c≡b+d(modm)a+c \equiv b+d(mod m)a+c≡b+d(modm)
減法減法減法
2.如果a≡b且c≡da\equiv b 且c \equiv da≡b且c≡d,那么a?c≡b?d(modm)a-c \equiv b-d(mod m)a?c≡b?d(modm)
乘法乘法乘法
3.如果a≡b且c≡da\equiv b 且c \equiv da≡b且c≡d,那么ac≡bd(modm)ac \equiv bd(mod m)ac≡bd(modm)
4…如果a≡b且c≡da\equiv b 且c \equiv da≡b且c≡d,那么an≡bn(modm)a^n \equiv b^{n}(mod m)an≡bn(modm)
除法除法除法
只有在滿足d與m互質的情況下
ad≡bd(modm)ad \equiv bd(mod m)ad≡bd(modm)等價于a≡b(modm)a \equiv b(mod m)a≡b(modm),d≠0d\ne 0d?=0
證明:
尋找系數d′和m′d'和m'd′和m′,使得dd′+m′m=1(d和m互質,gcd(d,m)=1)dd'+m'm=1(d和m互質,gcd(d,m)=1)dd′+m′m=1(d和m互質,gcd(d,m)=1),
那么ad≡bd?add′≡bdd′ad \equiv bd \iff add' \equiv bdd'ad≡bd?add′≡bdd′
因為dd′=1?mm′dd'=1-mm'dd′=1?mm′
所以a≡ba \equiv ba≡b
模數變化
ad≡bd(modmd)ad \equiv bd(mod md)ad≡bd(modmd)等價于a≡b(modm)a \equiv b(mod m)a≡b(modm)
ad≡bd(modm)ad \equiv bd(mod m)ad≡bd(modm)等價于a≡b(modmgcd(d,m))a \equiv b(mod \frac{m}{gcd(d,m)})a≡b(modgcd(d,m)m?)
證明:dd′+mm′=gcd(d,m)dd'+mm'=gcd(d,m)dd′+mm′=gcd(d,m),
這就給出同余式
a?gcd(d,m)≡b?gcd(d,m)(modm)\quad a*gcd(d,m)\equiv b*gcd(d,m)(modm)a?gcd(d,m)≡b?gcd(d,m)(modm)
→a≡b(modmgcd(d,m))\rightarrow a \equiv b(mod \frac{m}{gcd(d,m)})→a≡b(modgcd(d,m)m?)
a≡b(modmd)a \equiv b(mod md)a≡b(modmd)等價于a≡b(modm)a \equiv b(mod m)a≡b(modm),d為整數d為整數d為整數
如果m⊥n(互質)m\perp n(互質)m⊥n(互質),
a≡b(modmn)a \equiv b(mod mn)a≡b(modmn)?a≡b(modm)并且a≡b(modn)\iff a \equiv b(mod m)并且a \equiv b(mod n)?a≡b(modm)并且a≡b(modn)
中國剩余定理
找到一個滿足以下條件并最小的XXX
對于任意i都滿足,XmodmiXmodm_iXmodmi?=aia_iai?(1<=i<=n)(1<=i<=n)(1<=i<=n)
要求mim_imi?之間互質
首先考慮一個周期性,即找到一個可行解,該如何處理使得解更小呢?不斷減去周期T即可。
T=∏i=1nmiT=\prod_{i=1}^{n}{m_i}T=∏i=1n?mi?
對于X,我們不妨考慮找到一個組合使得X=∑xi\sum{x_i}∑xi?
xix_ixi?滿足條件xi%mixi\%m_ixi%mi?=ai并且(T/mi)∣xia_i 并且(T/m_i)|x_iai?并且(T/mi?)∣xi?,則這個xix_ixi?不會對其他xxx造成影響。
怎么找到這個xix_ixi?呢?
1.求出T/miT/m_iT/mi?模mim_imi?下的逆元ppp
2.令xix_ixi?=T/miT/m_iT/mi?*p,則乘積模mim_imi?為1
3.再把xix_ixi?乘以aia_iai?即可
思考:為什么要求mim_imi?之間互質呢?
如果mim_imi?之間不互質,那么周期T就不為這個。
思考:那么如果mim_imi?之間不互質該怎么辦呢?
把非互質的方程組消去,合并成一個。
用拓展歐幾里得消去其他m非互質的方程,合并后的modmodmod為lcm(mi,mj)lcm(m_i,m_j)lcm(mi?,mj?)
大佬博客
歐拉定理
若gcd(a,m)=1,則aφ(m)≡1(modm)gcd(a,m)=1,則a^{φ(m)}\equiv1(mod m)gcd(a,m)=1,則aφ(m)≡1(modm)
拓展歐拉定理(歐拉降冪公式)
若gcd(a,p)=1,那么ab=abmodφ(p)若gcd(a,p)=1,那么a^b=a^{bmodφ(p)}若gcd(a,p)=1,那么ab=abmodφ(p)
否則,若b>=φ(p),ab=abmodφ(p)+φ(p)否則, 若b>=φ(p),a^b=a^{bmodφ(p)+φ(p)}否則,若b>=φ(p),ab=abmodφ(p)+φ(p)
若b<φ(p),ab=ab若b<φ(p),a^b=a^b若b<φ(p),ab=ab
乘法逆元的幾種求法
限制條件
1.拓展歐幾里得(要求a與m互質)
2.費馬小定理(要求a與p互質,并且p為質數)
一些數學術語(摘自百度百科)
剩余類
設模為n,則根據余數可將所有的整數分為n類,把所有與整數a模n同余的整數構成的集合叫做模n的一個剩余類,記作[a]。并把a叫作剩余類[a]的一個代表元。
完全剩余系
在模n的剩余類中各取一個元素,則這n個數就構成了模n的一個完全剩余系。
簡化剩余系
簡化剩余系(reduced residue system)也稱既約剩余系或縮系,是m的完全剩余系中與m互素的數構成的子集,如果模m的一個剩余類里所有數都與m互素,就把它叫做與模m互素的剩余類。
在與模m互素的全體剩余類中,從每一個類中各任取一個數作為代表組成的集合,叫做模m的一個簡化剩余系。
例如:
模5的一個簡化剩余系是1,2,3,4,模10的一個簡化剩余系是1,3,7,9,模18的一個簡化剩余系是1,5,7,11,13,17
一些引理
1.若a,b,c為任意三個整數,m為正整數,且(m,c)=1(m,c)=1(m,c)=1,則當ac≡bc(modm)ac\equiv bc(modm)ac≡bc(modm)時,有
a≡b(modm)a\equiv b(mod m)a≡b(modm)
證明:
上式等價于:
c(a?b)≡0(modm)\quad c(a-b)\equiv 0(modm)c(a?b)≡0(modm)
∵(m,c)=1∵(m,c)=1∵(m,c)=1
∴a?b≡0(modm)∴a-b\equiv 0(modm)∴a?b≡0(modm)
∴a≡b(modm)∴a\equiv b(modm)∴a≡b(modm)
2.設mmm是一個整數且m>1m>1m>1,bbb是一個整數且(m,b)=1(m,b)=1(m,b)=1。
如果a[1],a[2],a[3],a[4],…a[m]a[1],a[2],a[3],a[4],…a[m]a[1],a[2],a[3],a[4],…a[m]是模m的一個完全剩余系,
則b?a[1],b?a[2],b?a[3],b?a[4],…b?a[m]b·a[1],b·a[2],b·a[3],b·a[4],…b·a[m]b?a[1],b?a[2],b?a[3],b?a[4],…b?a[m]也構成模m的一個完全剩余系。
證明采用反證法:
如若存在b?a[i]≡b?a[j]b·a[i] \equiv b·a[j]b?a[i]≡b?a[j],那么b(a[i]?a[j])≡0(modm)b(a[i]-a[j])\equiv0(modm)b(a[i]?a[j])≡0(modm)
又因為(b,m)=1又因為(b,m)=1又因為(b,m)=1,則a[i]≡a[j](modm)a[i]\equiv a[j](mod m)a[i]≡a[j](modm),與條件矛盾。
作用
證明費馬小定理:如果(a,p)=1(a,p)=1(a,p)=1(ppp為素數),則ap?1=1a^{p-1}=1ap?1=1
過程:構造素數p的完全剩余系
P={1,2,3,…,p?1}P=\{1,2,3,\dots,p-1\}P={1,2,3,…,p?1}
又(a,p)=1(a,p)=1(a,p)=1,那么根據引理2,
Q={a,2a,3a,…,(p?1)a}Q=\{a,2a,3a,\dots,(p-1)a\}Q={a,2a,3a,…,(p?1)a}也為p的完全剩余系
根據完全剩余系的性質:
1?2?3???(p?1)≡a?2a?3a?…?(p?1)a(modp)\quad1*2*3*\dots*(p-1)\equiv a·2a·3a·\dots·(p-1)a(mod p)1?2?3???(p?1)≡a?2a?3a?…?(p?1)a(modp)
(p?1)!≡(p?1)!?ap?1(modp)\quad(p-1)!\equiv(p-1)!·a^{p-1}(modp)(p?1)!≡(p?1)!?ap?1(modp)
消去(p?1)!(p-1)!(p?1)!,得到ap?1≡1(modp)a^{p-1}\equiv1(modp)ap?1≡1(modp)
盧卡斯定理
Lucas定理是用來求 c(n,m)modpc(n,m) mod pc(n,m)modp
C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p
總結
- 上一篇: 如何用word制作自己想要的硬笔字帖
- 下一篇: 电脑小问题不求人