终于肝完了,感觉比我肝原神里面的任务还累!幸好我这个原魔玩家的肝够用哈哈哈!
数论是非常重要的知识点,同时也是一个可能较无趣的知识点 (但是咱们还是得学呀艹),所以这篇博客就来讨论一下一些非常简单的数论入门知识(终于打开了尘封已久的博客)
一、关于整除
1、定义:
设 a , b ∈ Z a,b\in \mathbb{Z} a,b∈Z且 a ≠ 0 a\not=0 a=0,如果 ∃ \exists ∃一个 q ∈ Z q\in \mathbb{Z} q∈Z,使得 a × q = b a×q=b a×q=b,则称 b b b能够被 a a a整除,记作 a ∣ b a \mid b a∣b,否则为 a ∤ b a \nmid b a∤b
(啊定义是不是肥肠地简单)
2、性质:
(1)、传递性
如果 a ∣ b a \mid b a∣b且 b ∣ c b \mid c b∣c,则一定有 a ∣ c a \mid c a∣c
(这真的不能写易证吗)
证明:
∵ a ∣ b \because a \mid b ∵a∣b,令 a x = b ax = b ax=b( x ∈ Z x \in \mathbb{Z} x∈Z且 x ≠ 0 x \not= 0 x=0)
又 ∵ b ∣ c \because b \mid c ∵b∣c,令 b y = c by = c by=c( y ∈ Z y \in \mathbb{Z} y∈Z且 y ≠ 0 y \not= 0 y=0)
∴ a x y = c \therefore axy = c ∴axy=c,即 a ∣ c a \mid c a∣c
(2)、不知道叫什么性
a ∣ b a \mid b a∣b 且 a ∣ c a \mid c a∣c ⟺ \iff ⟺ ∀ \forall ∀整数 x , y x,y x,y,有 a ∣ ( b x + c y ) a \mid (bx + cy) a∣(bx+cy)
证明
∵ a ∣ b \because a \mid b ∵a∣b,令 a s = b as = b as=b( s ∈ Z s \in \mathbb{Z} s∈Z且 s ≠ 0 s \not= 0 s=0)
又 ∵ a ∣ c \because a \mid c ∵a∣c,令 a t = c at = c at=c( t ∈ Z t \in \mathbb{Z} t∈Z且 t ≠ 0 t \not= 0 t=0)
又 ∵ b x + c y = a s x + a t y = a ( s x + t y ) \because bx + cy = asx + aty = a(sx + ty) ∵bx+cy=asx+aty=a(sx+ty)
∴ a ∣ a ( s x + t y ) ⇒ a ∣ ( b x + c y ) \therefore a \mid a(sx + ty) \Rightarrow a \mid (bx + cy) ∴a∣a(sx+ty)⇒a∣(bx+cy)
(3)、还是不知道叫什么性
设 m ∈ Z m \in \mathbb{Z} m∈Z且 m ≠ 0 m \not= 0 m=0,则 a ∣ b a \mid b a∣b 等价于 m a ∣ m b ma \mid mb ma∣mb
证明:
(易证)
∵ a ∣ b \because a \mid b ∵a∣b,令 a x = b ax = b ax=b( x ∈ Z x \in \mathbb{Z} x∈Z且 x ≠ 0 x \not= 0 x=0)
∴ a x m = b m \therefore axm = bm ∴axm=bm,即 x a m = b m xam = bm xam=bm
∴ a m ∣ b m \therefore am \mid bm ∴am∣bm
(4)、也不知道叫什么性
设整数 x , y x,y x,y满足下式: a x + b y = 1 ax + by = 1 ax+by=1且 a ∣ n a \mid n a∣n, b ∣ n b \mid n b∣n,那么 a × b ∣ n a × b \mid n a×b∣n
证明:
∵ a ∣ n , b ∣ n \because a \mid n,b \mid n ∵a∣n,b∣n
∴ n = s a = t b \therefore n =sa = tb ∴n=sa=tb( s , t ∈ Z s,t \in \mathbb{Z} s,t∈Z且 s , t ≠ 0 s,t \not= 0 s,t=0)
又 ∵ a , b ≠ 0 \because a,b \not= 0 ∵a,b=0且 a x + b y = 1 ax + by = 1 ax+by=1
∴ \therefore ∴ a x + b y a b ax + by \over ab abax+by= 1 a b 1 \over ab ab1,即 x b x \over b bx + + + y a y \over a ay = = = 1 a b 1 \over ab ab1
∴ \therefore ∴ n a b n \over ab abn = = = ( ( ( x b x \over b bx + + + y a y \over a ay ) n = )n= )n= n x b nx \over b bnx + + + n y a ny \over a any = = = t b x b tbx \over b btbx + + + s a y a say \over a asay = = = t x + s y tx+sy tx+sy
又 ∵ t x + s y ∈ Z \because tx + sy \in \mathbb{Z} ∵tx+sy∈Z
∴ \therefore ∴ n a b n \over ab abn ∈ Z \in \mathbb{Z} ∈Z,即 a × b ∣ n a × b \mid n a×b∣n
(5)、依旧不知道叫什么性
若 b = q × d + c b = q × d + c b=q×d+c,那么 d ∣ b d \mid b d∣b ⟺ \iff ⟺ d ∣ c d \mid c d∣c( q ∈ Z q \in \mathbb{Z} q∈Z且 q ≠ 0 q \not= 0 q=0)
即证明 d ∣ b d \mid b d∣b的充要条件为 d ∣ c d \mid c d∣c
证明:
( ⇒ \Rightarrow ⇒的证明)(也就是充分条件的证明拉~):
∵ d ∣ b \because d \mid b ∵d∣b
∴ d y = b \therefore dy = b ∴dy=b( y ∈ Z y \in \mathbb{Z} y∈Z且 y ≠ 0 y \not= 0 y=0)
∴ d y = d q + c \therefore dy = dq + c ∴dy=dq+c
∴ d y − d q = c \therefore dy - dq = c ∴dy−dq=c
∴ d ( y − q ) = c \therefore d(y - q) = c ∴d(y−q)=c
∴ d ∣ c \therefore d \mid c ∴d∣c
( ⇐ \Leftarrow ⇐的证明)(也就是必要条件的证明拉~):
∵ d ∣ c \because d \mid c ∵d∣c
∴ d x = c \therefore dx = c ∴dx=c( x ∈ Z x \in \mathbb{Z} x∈Z且 x ≠ 0 x \not= 0 x=0)
∴ b = q d + x d = ( q + x ) d \therefore b = qd + xd = (q + x)d ∴b=qd+xd=(q+x)d
∴ d ∣ b \therefore d \mid b ∴d∣b
上面两个证明揉在一起,不就是 ⟺ \iff ⟺(充要条件)的证明了吗~
好了,关于整除的最基本的数论知识就介绍得差不多拉~
二、关于模运算
1、定义:
对于整数 a , b a,b a,b,其中 b ≠ 0 b \not= 0 b=0,求 a a a除以 b b b的余数,称为 a a a模 b b b,记作 a a a m o d mod mod b b b。为了方便表示,我们接下来就将其记作 a % b a \% b a%b
2、性质:
(1)、分配律
1): ( a + b ) % c = ( a % c + b % c ) % c (a + b)\%c=(a\%c+b\%c)\%c (a+b)%c=(a%c+b%c)%c
2): ( a − b ) % c = ( a % c − b % c + c ) % c (a-b)\%c=(a\%c-b\%c+c)\%c (a−b)%c=(a%c−b%c+c)%c
3): a b % c = ( a % c × b % c ) % c ab\%c=(a\%c×b\%c)\%c ab%c=(a%c×b%c)%c
4): a b a^b ab % c = ( a % c ) b \%c=(a\%c)^b %c=(a%c)b % c \%c %c
(2)、放缩性
1):如果 a % b = c a \% b = c a%b=c, d ∈ Z d \in \mathbb{Z} d∈Z且 d ≠ 0 d \not= 0 d=0,则 ( a d ) % ( b d ) = c d (ad)\%(bd)=cd (ad)%(bd)=cd
证明:
令 b s + c = a bs + c = a bs+c=a( s ∈ Z s \in \mathbb{Z} s∈Z且 s ≠ 0 s \not= 0 s=0)
∴ b s d + c d = a d \therefore bsd + cd = ad ∴bsd+cd=ad
∴ b d × s + c d = a d \therefore bd × s + cd = ad ∴bd×s+cd=ad
∴ ( a d ) % ( b d ) = c d \therefore (ad)\%(bd)=cd ∴(ad)%(bd)=cd
2):如果 a % b = c a \% b = c a%b=c, d ∣ a d \mid a d∣a且 d ∣ b d \mid b d∣b,则 a d a \over d da % \% % b d b \over d db = = = c d c \over d dc
证明:
令 b s + c = a bs + c = a bs+c=a( s ∈ Z s \in \mathbb{Z} s∈Z且 s ≠ 0 s \not= 0 s=0)
∴ \therefore ∴ b d b \over d db × × × s + s+ s+ c d c \over d dc = = = a d a \over d da,即 a d a \over d da % \% % b d b \over d db = = = c d c \over d dc
一些小证明:
1):若一个数的末尾数字能够被2整除,则这个数一定能够被2整除(
易证)
证明:
设这个数为 a a a,我们要证明的是:若 2 ∣ a % 10 2 \mid a \% 10 2∣a%10 ⇒ \Rightarrow ⇒ 2 ∣ a 2 \mid a 2∣a。
再设 x = a % 10 x = a \% 10 x=a%10, y = ( a − a % 10 ) ÷ 10 y = (a - a \% 10) ÷ 10 y=(a−a%10)÷10,则 a = 10 × y + x a = 10 × y\ +\ x a=10×y + x
∴ a % 2 = \therefore a \% 2 = ∴a%2= ( 10 × y ) % 2 (10 × y) \% 2 (10×y)%2 + x +\ x + x % 2 \%2 %2
又 ∵ 2 ∣ x \because 2 \mid x ∵2∣x且易得 2 ∣ ( 10 × y ) 2 \mid (10 × y) 2∣(10×y)
∴ 2 ∣ a \therefore 2 \mid a ∴2∣a
其它的小练习:
Number.1:若一个数的末两位数字能够被4整除,则这个数一定能够被4整除
Number.2:若一个数的末三位数字能够被8整除,则这个数一定能够被8整除
2):若一个数的各个数位之和能够被3整除,则这个数一定能被3整除
证明:
假设有一个三位数 a b c ‾ \overline{abc} abc,我们要证明的是:若 ( a + b + c ) % 3 = 0 (a + b + c) \% 3 = 0 (a+b+c)%3=0 ⇒ \Rightarrow ⇒ a b c ‾ % 3 = 0 \overline{abc}\%3 = 0 abc%3=0
我们知道这个三位数还可以表示为 a × ( 99 + 1 ) + b × ( 9 + 1 ) + c a × (99 + 1) + b × (9 + 1) + c a×(99+1)+b×(9+1)+c,所以 a b c ‾ % 3 = ( a × ( 99 + 1 ) + b × ( 9 + 1 ) + c ) % 3 = ( 99 a + 9 b + a + b + c ) % 3 = ( a + b + c ) % 3 \overline{abc}\%3 = (a × (99 + 1) + b × (9 + 1) + c)\%3 = (99a+9b+a+b+c)\%3 = (a+b+c)\%3 abc%3=(a×(99+1)+b×(9+1)+c)%3=(99a+9b+a+b+c)%3=(a+b+c)%3。
多位数时同理。
一个推论:若一个数的各个数位之和能够被9整除,则这个数一定能被9整除(留给读者自己证明吧)
3):若一个数的奇数位减去偶数位的差的绝对值(从左往右或从右往左均可)能够被11整除,则这个数一定能被11整除
证明:
假设有一个五位数 a b c d e ‾ \overline{abcde} abcde并且 a + c + e > b + d a+c+e>b+d a+c+e>b+d,我们要证明的是:若 ( a + c + e − b − d ) % 11 = 0 (a+c+e-b-d)\%11=0 (a+c+e−b−d)%11=0 ⇒ \Rightarrow ⇒ a b c d e ‾ % 11 = 0 \overline{abcde}\%11=0 abcde%11=0
我们知道这个五位数还可以表示为 a × ( 9999 + 1 ) + b × ( 1001 − 1 ) + c × ( 99 + 1 ) + d × ( 11 − 1 ) + e a × (9999 + 1) + b × (1001 - 1) + c × (99 + 1) + d × (11 - 1) + e a×(9999+1)+b×(1001−1)+c×(99+1)+d×(11−1)+e,所以 a b c d e ‾ % 11 = ( a × ( 9999 + 1 ) + b × ( 1001 − 1 ) + c × ( 99 + 1 ) + d × ( 11 − 1 ) + e ) % 11 = ( 9999 a + 1001 b + 99 c + 11 d + a − b + c − d + e ) % 11 = ( a + c + e − b − d ) % 11 \overline{abcde}\%11 = (a × (9999 + 1) + b × (1001 - 1) + c × (99 + 1) + d × (11 - 1) + e)\%11 = (9999a+1001b+99c+11d+a-b+c-d+e)\%11 = (a+c+e-b-d)\%11 abcde%11=(a×(9999+1)+b×(1001−1)+c×(99+1)+d×(11−1)+e)%11=(9999a+1001b+99c+11d+a−b+c−d+e)%11=(a+c+e−b−d)%11。
多位数时同理。
4):若一个数的末三位数字减去其它位数字的差的绝对值能够被7,11,13整除,则这个数一定能够被7,11,13整除
证明:
假设有一个八位数 a b c d e f g h ‾ \overline{abcdefgh} abcdefgh并且 a b c d e ‾ > f g h ‾ \overline{abcde}>\overline{fgh} abcde>fgh(废话文学?),因为 7 × 11 × 17 = 1001 7 × 11 × 17 = 1001 7×11×17=1001,所以我们要证明的就是:若 ( a b c d e ‾ − f g h ‾ ) % 1001 = 0 (\overline{abcde}-\overline{fgh}) \% 1001 = 0 (abcde−fgh)%1001=0 ⇒ \Rightarrow ⇒ a b c d e f g h ‾ % 1001 = 0 \overline{abcdefgh} \% 1001 = 0 abcdefgh%1001=0
我们知道这个八位数还可以表示为 a b c d e ‾ × ( 1001 − 1 ) + f g h ‾ \overline{abcde} × (1001 - 1) + \overline{fgh} abcde×(1001−1)+fgh,所以 ( a b c d e ‾ − f g h ‾ ) % 1001 = ( a b c d e ‾ × ( 1001 − 1 ) + f g h ‾ ) % 1001 = ( a b c d e ‾ × 1001 − a b c d e ‾ + f g h ‾ ) % 1001 ) = − a b c d e ‾ + f g h ‾ (\overline{abcde}-\overline{fgh}) \% 1001 = (\overline{abcde} × (1001 - 1) + \overline{fgh}) \% 1001 = (\overline{abcde} × 1001 - \overline{abcde}+ \overline{fgh}) \% 1001) = - \overline{abcde}+ \overline{fgh} (abcde−fgh)%1001=(abcde×(1001−1)+fgh)%1001=(abcde×1001−abcde+fgh)%1001)=−abcde+fgh。将其取绝对值即可。
多位数时同理。
All right,关于模运算的最基本的数论知识也介绍得差不多拉~
三、关于同余
1、定义:
设 m m m为 Z + \mathbb{Z}^+ Z+(正整数),若满足 m ∣ ( a − b ) m \mid (a - b) m∣(a−b),则称 a a a与 b b b对模 m m m同余, a % m = b % m a \% m = b \% m a%m=b%m,记作 a ≡ b ( m o d m ) a \equiv b(mod \ m) a≡b(mod m)。若 m ∤ ( a − b ) m \nmid (a - b) m∤(a−b),则 a a a与 b b b对模 m m m一定不同余。
显然易得的是: a = b + k m a=b+km a=b+km( k ∈ Z k \in \mathbb{Z} k∈Z且 k ≠ 0 k \not= 0 k=0) ⇒ a ≡ b ( m o d m ) \Rightarrow a \equiv b(mod \ m) ⇒a≡b(mod m)
对同余的证明:
∵ m ∣ ( a − b ) \because m \mid (a - b) ∵m∣(a−b)
∴ \therefore ∴ 令 m s = a − b ms = a - b ms=a−b( s ∈ Z s \in \mathbb{Z} s∈Z且 s ≠ 0 s \not= 0 s=0)
∴ a = m s + b \therefore a = ms + b ∴a=ms+b
∴ a % m = ( m s + b ) % m = b % m \therefore a \% m = (ms + b) \% m = b\%m ∴a%m=(ms+b)%m=b%m
2、性质:
1):自反性: a ≡ a ( m o d m ) a \equiv a(mod\ m) a≡a(mod m)
2):对称性:如果 a ≡ b ( m o d m ) a \equiv b(mod\ m) a≡b(mod m),则 b ≡ a ( m o d m ) b \equiv a(mod\ m) b≡a(mod m)
3):传递性:如果 a ≡ b ( m o d m ) a \equiv b(mod\ m) a≡b(mod m), b ≡ c ( m o d m ) b \equiv c(mod\ m) b≡c(mod m),那么 a ≡ c ( m o d m ) a \equiv c(mod\ m) a≡c(mod m)
关于3的证明:
∵ m ∣ ( a − b ) \because m \mid (a - b) ∵m∣(a−b)且 m ∣ ( b − c ) m \mid (b - c) m∣(b−c)
∴ m ∣ ( a − b ) + ( b − c ) \therefore m \mid (a - b) + (b - c) ∴m∣(a−b)+(b−c),即 m ∣ ( a − c ) m \mid (a - c) m∣(a−c)
4):同加性:如果 a ≡ b ( m o d m ) a \equiv b(mod\ m) a≡b(mod m),那么 a + c ≡ b + c ( m o d m ) a + c \equiv b + c(mod\ m) a+c≡b+c(mod m)
证明:
∵ m ∣ ( a − b ) \because m \mid (a - b) ∵m∣(a−b)
∴ m ∣ ( a − b ) + c − c \therefore m \mid (a - b) + c - c ∴m∣(a−b)+c−c,即 m ∣ ( a + c ) − ( b + c ) m \mid (a + c) - (b + c) m∣(a+c)−(b+c)
5):同减性:如果 a ≡ b ( m o d m ) a \equiv b(mod\ m) a≡b(mod m),那么 a − c ≡ b − c ( m o d m ) a - c \equiv b - c(mod\ m) a−c≡b−c(mod m)
证明:
∵ m ∣ ( a − b ) \because m \mid (a - b) ∵m∣(a−b)
∴ m ∣ ( a − b ) − c + c \therefore m \mid (a - b) - c + c ∴m∣(a−b)−c+c,即 m ∣ ( a − c ) − ( b − c ) m \mid (a - c) - (b - c) m∣(a−c)−(b−c)
6):同乘性:如果 a ≡ b ( m o d m ) a \equiv b(mod\ m) a≡b(mod m),那么 a c ≡ b c ( m o d m ) ac \equiv bc(mod\ m) ac≡bc(mod m)
证明:
∵ m ∣ ( a − b ) \because m \mid (a - b) ∵m∣(a−b)
∴ m ∣ ( a − b ) c \therefore m \mid (a - b)c ∴m∣(a−b)c,即 m ∣ ( a c − b c ) m \mid (ac - bc) m∣(ac−bc)
7):同除性:如果 a ≡ b ( m o d m ) a \equiv b(mod\ m) a≡b(mod m)且 c ∣ a c \mid a c∣a, c ∣ b c \mid b c∣b, g c d ( c , m ) = 1 gcd(c,m)=1 gcd(c,m)=1,那么 a c a \over c ca ≡ \equiv ≡ b c b \over c cb ( m o d m ) (mod\ m) (mod m)
证明:
∵ m ∣ ( a − b ) \because m \mid (a - b) ∵m∣(a−b)
∴ \therefore ∴令 m k = a − b mk = a - b mk=a−b,则 m k + b = a mk + b = a mk+b=a
∴ \therefore ∴ m c m \over c cm k + k \ + k + b c b \over c cb = = = a c a \over c ca
又 ∵ c ∣ a \because c \mid a ∵c∣a, c ∣ b c \mid b c∣b, g c d ( c , m ) = 1 gcd(c,m) = 1 gcd(c,m)=1
∴ \therefore ∴ b c b \over c cb ∈ Z \in \mathbb{Z} ∈Z且 a c a \over c ca ∈ Z \in \mathbb{Z} ∈Z且 m c m \over c cm ∉ Z \notin \mathbb{Z} ∈/Z
又 ∵ \because ∵ m c m \over c cm k k k ∈ Z \in \mathbb{Z} ∈Z
∴ \therefore ∴ k c k \over c ck ∈ Z \in \mathbb{Z} ∈Z
∴ c ∣ k \therefore c \mid k ∴c∣k,令 c x = k cx = k cx=k
∴ m c x + b = a \therefore mcx + b = a ∴mcx+b=a
∴ \therefore ∴ m c x c mcx \over c cmcx + + + b c b \over c cb = = = a c a \over c ca
∴ m x \therefore mx ∴mx + + + b c b \over c cb = = = a c a \over c ca
∴ \therefore ∴ a c a \over c ca ≡ \equiv ≡ b c b \over c cb ( m o d m ) (mod\ m) (mod m)
8):同幂性:如果 a ≡ b ( m o d m ) a \equiv b (mod \ m) a≡b(mod m) 且 c ∈ Z + c \in \mathbb{Z}^+ c∈Z+,则 a c ≡ b c ( m o d m ) a^c \equiv b^c (mod \ m) ac≡bc(mod m)
证明:
∵ a ≡ b ( m o d m ) \because a \equiv b (mod \ m) ∵a≡b(mod m)
∴ a % m = b % m \therefore a \% m = b \% m ∴a%m=b%m
∴ ( a % m ) c % m = ( b % m ) c % m \therefore (a \% m)^c \ \% \ m = (b \% m)^c \ \% \ m ∴(a%m)c % m=(b%m)c % m
∴ a c % m = b c % m \therefore a^c \ \% \ m = b^c \ \% \ m ∴ac % m=bc % m
∴ a c ≡ b c ( m o d m ) \therefore a^c \equiv b^c (mod \ m) ∴ac≡bc(mod m)
9):如果 a ≡ b ( m o d m ) a \equiv b (mod \ m) a≡b(mod m)且 c ≡ d ( m o d m ) c \equiv d (mod \ m) c≡d(mod m),那么 a + c ≡ b + d ( m o d m ) a + c \equiv b + d (mod \ m) a+c≡b+d(mod m)
证明:
∵ m ∣ ( a − b ) \because m \mid (a - b) ∵m∣(a−b)且 m ∣ ( c − d ) m \mid (c - d) m∣(c−d)
∴ m ∣ ( a − b ) + ( c − d ) \therefore m \mid (a - b) + (c - d) ∴m∣(a−b)+(c−d)
∴ m ∣ ( a + c ) − ( b + d ) \therefore m \mid (a + c) - (b + d) ∴m∣(a+c)−(b+d)
∴ a + c ≡ b + d ( m o d m ) \therefore a + c \equiv b + d (mod \ m) ∴a+c≡b+d(mod m)
10):如果 a ≡ b ( m o d m ) a \equiv b (mod \ m) a≡b(mod m)且 c ≡ d ( m o d m ) c \equiv d (mod \ m) c≡d(mod m),那么 a c ≡ b d ( m o d m ) ac \equiv bd (mod \ m) ac≡bd(mod m)
证明:
∵ m ∣ ( a − b ) \because m \mid (a - b) ∵m∣(a−b)且 m ∣ ( c − d ) m \mid (c - d) m∣(c−d)
∴ m ∣ ( a − b ) ∗ c + ( c − d ) ∗ b \therefore m \mid (a - b) * c + (c - d) * b ∴m∣(a−b)∗c+(c−d)∗b
∴ m ∣ a c − b c + b c − b d \therefore m \mid ac - bc + bc - bd ∴m∣ac−bc+bc−bd,即 m ∣ a c − b d m \mid ac - bd m∣ac−bd
∴ a c ≡ b d ( m o d m ) \therefore ac \equiv bd (mod \ m) ∴ac≡bd(mod m)
11):如果 a % p = x a \% p = x a%p=x, a % q = x a \% q = x a%q=x且 ( p , q ) = 1 (p,q) = 1 (p,q)=1,那么 a % ( p × q ) = x a \% (p × q) = x a%(p×q)=x
证明:
设 a = p k 1 + x = q k 2 + x a = pk_1 + x = qk_2 + x a=pk1+x=qk2+x
∴ a − x \therefore a - x ∴a−x是 p p p和 q q q的公倍数
又 ∵ ( p , q ) = 1 \because (p,q) = 1 ∵(p,q)=1
∴ l c m ( p , q ) = p × q \therefore lcm(p,q) = p × q ∴lcm(p,q)=p×q
∴ p × q ∣ a − x \therefore p × q \mid a - x ∴p×q∣a−x
∴ p × q × s = a − x \therefore p × q × s = a - x ∴p×q×s=a−x,即 p × q × s + x = a p × q × s + x = a p×q×s+x=a
∴ a % ( p × q ) = x \therefore a \% (p × q) = x ∴a%(p×q)=x
彳亍了,在狂肝了几小时后终于将同余的最基本的数论知识也打完拉
四、关于排列组合
1、排列的定义:
给定n个数的元素中,取出指定m个数的元素进行排序。记作 A n m A_{n}^{m} Anm,也可记作 A ( n , m ) A(n,m) A(n,m)
计算方法: A n m = n × ( n − 1 ) × ( n − 2 ) × … × ( n − m + 1 ) = A_{n}^{m} = n × (n - 1) × (n - 2) × … × (n - m + 1) = Anm=n×(n−1)×(n−2)×…×(n−m+1)= n ! ( n − m ) ! n! \over (n - m)! (n−m)!n!
2、组合的定义:
给定n个数的元素中,取出指定m个数的元素,但不考虑排序。记作 C n m C_{n}^{m} Cnm,也可记作 C ( n , m ) C(n,m) C(n,m)
计算方法:
C n m = C_n^m = Cnm= A n m m ! A_n^m \over m! m!Anm = = = n ! ( n − m ) ! m ! n! \over (n - m)!m! (n−m)!m!n!
(其实组合相对于排列就只是不考虑顺序,比如1,2,3和2,3,1,组合认为它们是一种方法,而排列认为它们是两种方法,所以只需要将排列的总方案数除以全排列的个数(即发生重复的个数) m ! m! m!即可)
3、8大经典例题:
以下所有题,均有 n n n个小球和 m m m个盒子
1):球相同,盒不同,无空盒
解法:(隔板法)
假设有这些小球:oooo…ooo
如果我们要把这 n n n个小球分到 m m m个盒子里中
就相当于在这 n n n个小球里面插入 m − 1 m-1 m−1个隔板
举个栗子:(当 n = 4 n=4 n=4, m = 2 m=2 m=2时)
小球:oooo
我们只需要在它们中间插入 2 − 1 = 1 2 - 1 = 1 2−1=1个隔板就可以将它们分为2堆。
例如:o|ooo 或者 oo|oo
我们又知道,一共有 n − 1 n - 1 n−1个位置可以放隔板(因为没有空盒)。
所以即求:在 n − 1 n-1 n−1个位置中放入 m − 1 m-1 m−1个隔板的方案总数。答案为 C n − 1 m − 1 C_{n-1}^{m-1} Cn−1m−1
2):球相同,盒不同,可空盒
解法:(依旧是隔板法)
这个问题与上一个问题唯一的一个区别就在于这道题允许空盒。
所以在上一道题的基础上,我们可以先将每一个盒子里面都装进去一个虚球。
这样就保证了每一个盒子里面都有球,就变成了第一道题的做法,答案为 C n + m − 1 m − 1 C_{n+m-1}^{m-1} Cn+m−1m−1。
为什么这样做是正确的呢?
因为我们认为虚球不算球。
所以如果有一个盒子只有一个虚球,那我们认为这个盒子没有球。
(应该懂了吧)
3):球不同,盒相同,无空盒
解法:
我们设答案为 d p [ n ] [ m ] dp[n][m] dp[n][m]。
对于第 i i i个球,它一共有两种去向,一个是自己独占一个盒子,另一个是与别人一起占一个盒子。
所以可以很轻易地列出动态转移方程 d p [ i ] [ j ] = d p [ i − 1 ] [ j − 1 ] + d p [ i − 1 ] [ j ] ∗ j dp[i][j] = dp[i-1][j-1]+dp[i-1][j]*j dp[i][j]=dp[i−1][j−1]+dp[i−1][j]∗j。
关于 d p [ i − 1 ] [ j − 1 ] dp[i-1][j-1] dp[i−1][j−1],是它独占一个盒子的情况。
关于 d p [ i − 1 ] [ j ] ∗ j dp[i-1][j]*j dp[i−1][j]∗j,是它与别人一起占一个盒子的情况。因为该题球不同,所以它占这 j j j个盒子的哪一个盒子都是一种不同的情况,因此要乘上一个盒子总数 j j j
初始化 d p [ 1 ] [ 1 ] = 1 dp[1][1] = 1 dp[1][1]=1。
(这其实就是第二类斯特林数)
4):球不同,盒相同,可空盒
解法:
与上一题类似,但这个问题允许空盒,那答案也只需要做一点点修改。
答案: ∑ i = 1 m d p [ n ] [ i ] \sum_{i=1}^{m}dp[n][i] ∑i=1mdp[n][i]
d p [ n ] [ 1 ] dp[n][1] dp[n][1]即表示有 m − 1 m - 1 m−1个空盒时的情况, d p [ n ] [ 2 ] dp[n][2] dp[n][2]即表示有 m − 2 m - 2 m−2个空盒时的情况……以此类推。
因为球不同,且盒子的个数也不同,所以一定没有重复计算的情况。
5):球不同,盒不同,无空盒
解法:
与第3题类似,这道题如果盒子不同的话,那么就需要考虑顺序。
我们在介绍排列组合的概念时就已经说明了在 m m m个数组成的排列中,发生重复的个数为 m ! m! m!。此题需要将这些重复全部算进去(因为要考虑顺序),所以答案为: d p [ n ] [ m ] × m ! dp[n][m] × m! dp[n][m]×m!
6):球不同,盒不同,可空盒
解法:
这一题因为球和盒子均不同,所以只需要考虑将第 i i i个球放在哪个盒子里面,每一个球都有 m m m种放法。又因为乘法原理可得答案为: m n m^n mn
7):球相同,盒相同,无空盒
解法:
我们可以先将 m m m个盒子中均放上一个小球,就还剩下 n − m n - m n−m个小球,这些小球都可以放在这 m m m个盒子里。所以动态转移方程为: ∑ i = 2 n ∑ j = 2 m ∑ k = 1 j d p [ i − j ] [ k ] ( j < i ) \sum_{i=2}^{n}\sum_{j = 2}^{m}\sum_{k = 1}^{j}dp[i-j][k](j < i) ∑i=2n∑j=2m∑k=1jdp[i−j][k](j<i)。
初始化: d p [ i ] [ 1 ] = d p [ i ] [ i ] = 1 ( 1 ≤ i ≤ n ) dp[i][1] = dp[i][i] = 1(1 \leq i \leq n) dp[i][1]=dp[i][i]=1(1≤i≤n)
8):球相同,盒相同,可空盒
解法:
与第2题的虚球思想类似,我们只需要提前将 m m m个盒子里均放上一个虚球,再套用第7题的方法就可以了。
非常棒,你已经将很多的数论基础知识耐心地看完了,马上就快成功了,加油!
五、gcd和lcm
1、gcd的定义:
设 a 1 , a 2 , a 3 … a k a_1,a_2,a_3…a_k a1,a2,a3…ak是 k k k个 Z + \mathbb{Z}^+ Z+,如果 ∃ \exists ∃一个 Z + d \mathbb{Z}^+d Z+d,使得 d ∣ a 1 , d ∣ a 2 , d ∣ a 3 … d ∣ a k d \mid a_1,d \mid a_2,d \mid a_3…d \mid a_k d∣a1,d∣a2,d∣a3…d∣ak,那么 d d d为 a 1 , a 2 , a 3 … a k a_1,a_2,a_3…a_k a1,a2,a3…ak的公因数。其中最大的 d d d为 a 1 , a 2 , a 3 … a k a_1,a_2,a_3…a_k a1,a2,a3…ak的最大公因数
2、lcm的定义:
设 a 1 , a 2 , a 3 … a k a_1,a_2,a_3…a_k a1,a2,a3…ak是 k k k个 Z + \mathbb{Z}^+ Z+,如果 ∃ \exists ∃一个 Z + d \mathbb{Z}^+d Z+d,使得 a 1 ∣ d , a 2 ∣ d , a 3 ∣ d … a k ∣ d a_1 \mid d,a_2 \mid d,a_3 \mid d…a_k \mid d a1∣d,a2∣d,a3∣d…ak∣d,那么 d d d为 a 1 , a 2 , a 3 … a k a_1,a_2,a_3…a_k a1,a2,a3…ak的公倍数。其中最小的 d d d为 a 1 , a 2 , a 3 … a k a_1,a_2,a_3…a_k a1,a2,a3…ak的最小公倍数
3、一个小定理:
g c d ( a , b ) × l c m ( a , b ) = a × b gcd(a,b)×lcm(a,b)=a×b gcd(a,b)×lcm(a,b)=a×b
证明:
将 a , b a,b a,b进行质因子分解,设 a , b a,b a,b的质因子集合并集为 p 1 , p 2 , p 3 … p n {p_1,p_2,p_3…p_n} p1,p2,p3…pn,那么:
设 a = p 1 k 1 × p 2 k 2 × … × p n k n , b = p 1 j 1 × p 2 j 2 × … × p n j n a = p_1^{k_1} × p_2^{k_2} × … × p_n^{k_n},b = p_1^{j_1} × p_2^{j_2} × … × p_n^{j_n} a=p1k1×p2k2×…×pnkn,b=p1j1×p2j2×…×pnjn( k i , j i ∈ Z k_i,j_i \in \mathbb{Z} ki,ji∈Z且 k i , j i ≠ 0 k_i,j_i \not= 0 ki,ji=0)
∴ g c d ( a , b ) = p 1 m i n ( k 1 , j 1 ) × p 2 m i n ( k 2 , j 2 ) × … × p n m i n ( k n , j n ) \therefore gcd(a, b) = p_1^{min(k_1,j_1)} × p_2^{min(k_2,j_2)} × … × p_n^{min(k_n,j_n)} ∴gcd(a,b)=p1min(k1,j1)×p2min(k2,j2)×…×pnmin(kn,jn)
且 l c m ( a , b ) = p 1 m a x ( k 1 , j 1 ) × p 2 m a x ( k 2 , j 2 ) × … × p n m a x ( k n , j n ) lcm(a, b) = p_1^{max(k_1,j_1)} × p_2^{max(k_2,j_2)} × … × p_n^{max(k_n,j_n)} lcm(a,b)=p1max(k1,j1)×p2max(k2,j2)×…×pnmax(kn,jn)
又 ∵ m i n ( k i , j i ) + m a x ( k i , j i ) = k i + j i \because min(k_i,j_i) + max(k_i,j_i) = k_i + j_i ∵min(ki,ji)+max(ki,ji)=ki+ji
∴ g c d ( a , b ) × l c m ( a , b ) = p 1 k 1 + j 1 × p 2 k 2 + j 2 × … × p n k n + j n \therefore gcd(a,b) × lcm(a,b) = p_1^{k_1+j_1} × p_2^{k_2+j_2} × … × p_n^{k_n+j_n} ∴gcd(a,b)×lcm(a,b)=p1k1+j1×p2k2+j2×…×pnkn+jn
且 a × b = p 1 k 1 + j 1 × p 2 k 2 + j 2 × … × p n k n + j n a × b = p_1^{k_1+j_1} × p_2^{k_2+j_2} × … × p_n^{k_n+j_n} a×b=p1k1+j1×p2k2+j2×…×pnkn+jn
∴ g c d ( a , b ) × l c m ( a , b ) = a × b \therefore gcd(a,b)×lcm(a,b)=a×b ∴gcd(a,b)×lcm(a,b)=a×b
4、辗转相除法(欧几里得定理):
g c d ( a , b ) = g c d ( b , a % b ) gcd(a,b) = gcd(b, a \% b) gcd(a,b)=gcd(b,a%b)
证明:
设 g c d ( a , b ) = p gcd(a, b) = p gcd(a,b)=p ⇒ \Rightarrow ⇒ a = k p , b = q p , g c d ( k , q ) = 1 a = kp,b = qp,gcd(k,q)=1 a=kp,b=qp,gcd(k,q)=1
∴ a % b = ( k p ) % ( g p ) = ( k % g ) p \therefore a \% b = (kp) \% (gp) = (k \% g)p ∴a%b=(kp)%(gp)=(k%g)p
∴ g c d ( b , a % b ) = g c d ( g p , ( k % g ) p ) \therefore gcd(b, a \% b) = gcd(gp, (k \% g)p) ∴gcd(b,a%b)=gcd(gp,(k%g)p)
又 ∵ g c d ( g , k % g ) = 1 \because gcd(g, k \% g) = 1 ∵gcd(g,k%g)=1
∴ g c d ( b , a % b ) = g c d ( g p , ( k % g ) p ) = p \therefore gcd(b, a \% b) = gcd(gp, (k \% g)p) = p ∴gcd(b,a%b)=gcd(gp,(k%g)p)=p
∴ g c d ( a , b ) = g c d ( b , a % b ) \therefore gcd(a, b) = gcd(b, a \% b) ∴gcd(a,b)=gcd(b,a%b)
5、扩展欧几里得(exgcd)
在已知 Z a , b \mathbb{Z}a,b Za,b的情况下求不定方程 a x + b y = g c d ( a , b ) ax + by = gcd(a,b) ax+by=gcd(a,b)的一组整数解。对于 x , y ∈ Z x,y \in \mathbb{Z} x,y∈Z,解通常为一正一负。 e x g c d exgcd exgcd可以求出上述方程中 ∣ x ∣ + ∣ y ∣ |x| + |y| ∣x∣+∣y∣最小的一组解。
推导过程:
设 a x 1 + b y 1 = g c d ( a , b ) , b x 2 + ( a % b ) y 2 = g c d ( b , a % b ) ax_1 + by_1 = gcd(a,b),bx_2+(a\%b)y_2=gcd(b,a\%b) ax1+by1=gcd(a,b),bx2+(a%b)y2=gcd(b,a%b)
由欧几里得定理可得 g c d ( a , b ) = g c d ( b , a % b ) gcd(a,b) = gcd(b, a \% b) gcd(a,b)=gcd(b,a%b)
∴ a x 1 + b y 1 = b x 2 + ( a % b ) y 2 \therefore ax_1 + by_1 = bx_2 + (a \% b)y_2 ∴ax1+by1=bx2+(a%b)y2
又 ∵ a % b = a − b k \because a \% b = a - bk ∵a%b=a−bk( k ∈ Z k \in \mathbb{Z} k∈Z)
且 k = ⌊ k = \lfloor k=⌊ a b a \over b ba ⌋ \rfloor ⌋
∴ a x 1 + b y 1 = b x 2 + ( a − \therefore ax_1 + by_1 = bx_2 + (a - ∴ax1+by1=bx2+(a− b b b ⌊ \lfloor ⌊ a b a \over b ba ⌋ \rfloor ⌋) y 2 y_2 y2
整理得: a x 1 + b y 1 = a y 2 + b ( x 2 − ax_1 + by_1 = ay_2 + b(x_2 - ax1+by1=ay2+b(x2− ⌊ \lfloor ⌊ a b a \over b ba ⌋ \rfloor ⌋ y 2 y_2 y2)
∴ x 1 = y 2 , y 1 = x 2 − \therefore x_1 = y_2,y_1 = x_2 - ∴x1=y2,y1=x2− ⌊ \lfloor ⌊ a b a \over b ba ⌋ \rfloor ⌋ y 2 y_2 y2
∴ ( x 1 , y 1 ) \therefore (x_1,y_1) ∴(x1,y1)这组解是由 ( x 2 , y 2 ) (x_2,y_2) (x2,y2)这组解推来的
不难发现:当 ( x n , y n ) (x_n,y_n) (xn,yn)关于 g c d ( a , 0 ) gcd(a,0) gcd(a,0)时, a x n + b y n = g c d ( a , 0 ) = a ax_n + by_n = gcd(a,0) = a axn+byn=gcd(a,0)=a,此时可得出 a = a , b = 0 a=a,b=0 a=a,b=0
∴ a x n + b y n = a \therefore ax_n + by_n = a ∴axn+byn=a ⇒ \Rightarrow ⇒ x n = 1 , y n = ∀ Z x_n = 1,y_n = \forall \mathbb{Z} xn=1,yn=∀Z
∴ ∃ x n = 1 , y n = 0 \therefore \exists x_n = 1,y_n = 0 ∴∃xn=1,yn=0,这组边界整数解,可得出 x 1 , y 1 x_1,y_1 x1,y1
代码:
int exgcd(int a, int b, int &ans1, int &ans2) {
if(b == 0) {
ans1 = 1, ans2 = 0;
return a;
}
int ans = exgcd(b, a % b, ans2, ans1);
ans2 -= ans1 * (a / b);
return ans;
}
六、裴蜀定理
1、定理:
对于不定方程 a x + b y = m ax + by = m ax+by=m,其有解( a , b , m a,b,m a,b,m为常数)的充要条件为: g c d ( a , b ) ∣ m gcd(a,b) \mid m gcd(a,b)∣m
证明:(充分条件)
∵ a x + b y = m \because ax + by = m ∵ax+by=m有解
∴ \therefore ∴有 Z x , y \mathbb{Z}x,y Zx,y使得 a x + b y = m ax + by = m ax+by=m
又 ∵ g c d ( a , b ) ∣ a \because gcd(a, b) \mid a ∵gcd(a,b)∣a且 g c d ( a , b ) ∣ b gcd(a,b) \mid b gcd(a,b)∣b
∴ g c d ( a , b ) ∣ ( a x + b y ) \therefore gcd(a,b) \mid (ax + by) ∴gcd(a,b)∣(ax+by)
∴ g c d ( a , b ) ∣ m \therefore gcd(a,b) \mid m ∴gcd(a,b)∣m
证明:(必要条件)
∵ g c d ( a , b ) ∣ m \because gcd(a,b) \mid m ∵gcd(a,b)∣m
∴ \therefore ∴ 即证 a x + b y = g c d ( a , b ) ax + by = gcd(a,b) ax+by=gcd(a,b)
根据exgcd可易证这个结论
2、引理:
对于 ∀ x , y ∈ Z \forall x,y \in \mathbb{Z} ∀x,y∈Z,函数 f ( x , y ) = a x + b y f(x,y) = ax + by f(x,y)=ax+by的最小 Z + \mathbb{Z}^+ Z+取值为 g c d ( a , b ) gcd(a,b) gcd(a,b)
证明:
设 f ( x , y ) = a x + b y = m f(x,y) = ax + by = m f(x,y)=ax+by=m
则根据裴蜀定理可得, g c d ( a , b ) ∣ m gcd(a,b) \mid m gcd(a,b)∣m
∴ \therefore ∴ 当 m = g c d ( a , b ) m = gcd(a,b) m=gcd(a,b)时,取得满足条件的最小 Z + \mathbb{Z}^+ Z+值
3、推论:
1):若 a , b ∈ Z + a,b \in \mathbb{Z}^+ a,b∈Z+且 g c d ( a , b ) = 1 gcd(a,b) = 1 gcd(a,b)=1,则 ∄ k ( 0 < k < b ) \nexists k(0 < k < b) ∄k(0<k<b),使得 b ∣ a k b \mid ak b∣ak
证明:
若 b ∣ a k b \mid ak b∣ak,则 a k ak ak中一定含有 b b b的所有质因子
又 ∵ g c d ( a , b ) = 1 \because gcd(a, b) = 1 ∵gcd(a,b)=1
∴ a \therefore a ∴a中不可能含有 b b b的任意质因子
∴ k \therefore k ∴k中一定含有 b b b的所有质因子
∴ k ∣ b \therefore k \mid b ∴k∣b
又 ∵ 0 < k < b \because 0 < k < b ∵0<k<b
∴ \therefore ∴ 矛盾
2):若 a , b ∈ Z + a,b \in \mathbb{Z}^+ a,b∈Z+且 g c d ( a , b ) = 1 gcd(a,b) = 1 gcd(a,b)=1,则 0 , a , 2 a , 3 a … ( b − 1 ) a 0,a,2a,3a…(b - 1)a 0,a,2a,3a…(b−1)a这些数分别模 b b b ∄ \nexists ∄两个相同的结果
证明:
若 ∃ \exists ∃两个不同的数 i × a , j × a i × a,j × a i×a,j×a( 0 < j < i < b 0 < j < i < b 0<j<i<b)且 i × a ≡ j × a ( m o d b ) i × a \equiv j × a(mod \ b) i×a≡j×a(mod b)
∴ i × a % b = j × a % b \therefore i × a \% b = j × a \% b ∴i×a%b=j×a%b
∴ i × a % b − j × a % b = 0 \therefore i × a \% b - j × a \% b = 0 ∴i×a%b−j×a%b=0
∴ ( i − j ) × a % b = 0 \therefore (i - j) × a \% b = 0 ∴(i−j)×a%b=0且 0 < i − j < b 0 < i - j < b 0<i−j<b
设 k = i − j k = i - j k=i−j,则有 a k % b = 0 ak \% b = 0 ak%b=0且 0 < k < b 0 < k < b 0<k<b
又 ∵ g c d ( a , b ) = 1 \because gcd(a,b) = 1 ∵gcd(a,b)=1
∴ \therefore ∴ 与引理1矛盾
小知识:若 a , b ∈ Z + a,b \in \mathbb{Z}^+ a,b∈Z+且 g c d ( a , b ) = 1 gcd(a,b) = 1 gcd(a,b)=1,则 0 , a , 2 a , 3 a … ( b − 1 ) a 0,a,2a,3a…(b - 1)a 0,a,2a,3a…(b−1)a这些数模 b b b的结果的集合 A = { 0 , 1 , 2 , … b − 2 , b − 1 } A = \{0,1,2,…b-2,b-1\} A={0,1,2,…b−2,b−1},读者可以自己证明一下。
3):若 a , b ∈ Z + a,b \in \mathbb{Z}^+ a,b∈Z+且 g c d ( a , b ) = 1 gcd(a,b) = 1 gcd(a,b)=1,则一定 ∃ k ∈ Z \exists k \in \mathbb{Z} ∃k∈Z,使得 a k % b = 1 ak \% b = 1 ak%b=1
证明:
这个其实可以用引理2下面的小知识轻松解决
芜湖,新的一天,又学了新的知识,一起来看看吧~
七、费马小定理
1、定理:
若 p p p为质数,且 a % p ≠ 0 a \% p \not= 0 a%p=0,则有 a p − 1 % p = 1 a^{p - 1} \ \% \ p = 1 ap−1 % p=1
证明:
∵ ( a × 1 ) × ( a × 2 ) × ( a × 3 ) × … × ( a × ( p − 1 ) ) % p = a p − 1 × ( p − 1 ) ! % p \because (a × 1) × (a × 2) × (a × 3) × … × (a × (p - 1)) \% p = a^{p - 1} × (p - 1)! \ \%\ p ∵(a×1)×(a×2)×(a×3)×…×(a×(p−1))%p=ap−1×(p−1)! % p
又 ∵ p \because p ∵p为质数且 p ∤ a p \nmid a p∤a
∴ g c d ( a , p ) = 1 \therefore gcd(a,p) = 1 ∴gcd(a,p)=1
根据裴蜀定理引理2下面的小知识可得: ( a × 1 ) % p , ( a × 2 ) % p , ( a × 3 ) % p , … ( a × ( p − 1 ) % p ) (a × 1) \% p ,\ (a × 2) \% p ,\ (a × 3) \% p, \ … \ (a × (p - 1) \% p) (a×1)%p, (a×2)%p, (a×3)%p, … (a×(p−1)%p)互不相等且区间 S = [ 1 , p − 1 ] S = [1, \ p - 1] S=[1, p−1]
∴ ( a × 1 ) × ( a × 2 ) × ( a × 3 ) × … × ( a × ( p − 1 ) ) % p = ( a × 1 ) % p × ( a × 2 ) % p × ( a × 3 ) % p × … × ( a × ( p − 1 ) ) % p = 1 × 2 × 3 × … × ( p − 1 ) % p = ( p − 1 ) ! % p \therefore (a × 1) × (a × 2) × (a × 3) × … × (a × (p - 1)) \% p = (a × 1) \% p × (a × 2) \% p × (a × 3) \% p × … × (a × (p - 1)) \% p = 1 × 2 × 3 × … × (p - 1) \% p = (p - 1)! \ \% \ p ∴(a×1)×(a×2)×(a×3)×…×(a×(p−1))%p=(a×1)%p×(a×2)%p×(a×3)%p×…×(a×(p−1))%p=1×2×3×…×(p−1)%p=(p−1)! % p
∴ a p − 1 × ( p − 1 ) ! % p = ( p − 1 ) ! % p \therefore a^{p - 1} × (p - 1)! \ \% \ p = (p - 1)! \ \% \ p ∴ap−1×(p−1)! % p=(p−1)! % p,即 a p − 1 × ( p − 1 ) ! ≡ ( p − 1 ) ! ( m o d p ) a^{p - 1} × (p - 1)! \equiv (p - 1)! \ (mod \ p) ap−1×(p−1)!≡(p−1)! (mod p)
又 ∵ p \because p ∵p为质数
∴ g c d ( ( p − 1 ) ! , p ) = 1 \therefore gcd((p - 1)! \ , \ p) = 1 ∴gcd((p−1)! , p)=1
∴ a p − 1 ≡ 1 ( m o d p ) \therefore a^{p - 1} \equiv 1 \ (mod \ p) ∴ap−1≡1 (mod p)
至于其它的应用,只能等下次喽~
八、乘法逆元
1、定义:
有 Z + a , n \mathbb{Z}^+a,n Z+a,n,如果 a x ≡ 1 ( m o d n ) ax \equiv 1 (mod \ n) ax≡1(mod n),则称 x x x的最小 Z + \mathbb{Z}^+ Z+解为 a % n a \% n a%n的乘法逆元,表示为 i n v ( a ) inv(a) inv(a)
2、用处:
当我们要求 a b a \over b ba % p \% p %p的值时,如果 b b b过于大,普通的做法就会爆精度,所以我们只需要求出 b b b的乘法逆元 x x x,就可以将 a b a \over b ba转化成 a x ax ax。
3、(也许是性质?)
1):如果每个 Z a \mathbb{Z}a Za均有唯一的与之对应的乘法逆元 x x x,使得 a x ≡ 1 ( m o d n ) ax \equiv 1 (mod \ n) ax≡1(mod n),其充要条件为 g c d ( a , n ) = 1 gcd(a,n) = 1 gcd(a,n)=1(懒得证了,显然易得)
2):设 k k k为关于 b b b的乘法逆元, g c d ( b , p ) = 1 gcd(b, p) = 1 gcd(b,p)=1,那么 a b a \over b ba % p = a k % p \% p = ak \% p %p=ak%p
证明:
由题可得:
b k ≡ 1 ( m o d p ) ⇒ b k = p x + 1 bk \equiv 1(mod \ p) \Rightarrow bk = px + 1 bk≡1(mod p)⇒bk=px+1
∴ k = \therefore k = ∴k= p x + 1 b px + 1 \over b bpx+1
∴ a k % p = \therefore ak \% p = ∴ak%p= a p x + a b apx + a \over b bapx+a % p \% \ p % p
= \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = = ( ( ( a p x b apx \over b bapx + + + a b a \over b ba ) % p ) \% p )%p
= \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = = ( ( ( a p x b apx \over b bapx % p + \% p + %p+ a b a \over b ba % p \% p %p ) % p ) \% p )%p
= \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = = ( p (p (p a x b ax \over b bax % p + \% p + %p+ a b a \over b ba % p \% p %p ) % p ) \% p )%p
= \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = = a b a \over b ba % p \% p %p
4、求逆元的方法
1):快速幂+费马小定理
推导:
设 p p p为质数,则由费马小定理可得: a p − 1 ≡ 1 ( m o d p ) ⇒ a × a p − 2 ≡ 1 ( m o d p ) a^{p - 1} \equiv 1(mod \ p) \Rightarrow a × a^{p - 2} \equiv 1(mod \ p) ap−1≡1(mod p)⇒a×ap−2≡1(mod p)且 g c d ( a , p ) = 1 gcd(a,p) = 1 gcd(a,p)=1
∴ a × a p − 2 ≡ a × i n v ( a ) ( m o d p ) ⇒ a p − 2 ≡ i n v ( a ) ( m o d p ) \therefore a × a^{p - 2} \equiv a × inv(a) (mod \ p) \Rightarrow a^{p - 2} \equiv inv(a) (mod \ p) ∴a×ap−2≡a×inv(a)(mod p)⇒ap−2≡inv(a)(mod p)
∴ a p − 2 \therefore a^{p - 2} ∴ap−2为 a a a关于 % p \% p %p的乘法逆元。
代码:
int qkpow(int a, int b) {
if(b == 1) return a;
if(b == 0) return 1;
int ans = qkpow(a, b / 2) % mod;
if(b & 1) return ans * ans % mod * a % mod;
return ans * ans % mod;
}
int inv(int i) {
return qkpow(i, mod - 2) % mod;
}
2):扩展欧几里得(exgcd)
一句话:要求 a x ≡ 1 ( m o d p ) ax \equiv 1(mod \ p) ax≡1(mod p)的最小 Z + \mathbb{Z}^+ Z+解 x x x,即 a x − p y = 1 ax - py = 1 ax−py=1( a , p a,p a,p互质)
所以只需要一个扩欧的模板即可。最后的 x x x要化负为正。
代码:
int exgcd(int a, int b, int &ans1, int &ans2) {
if(b == 0) {
ans1 = 1, ans2 = 0;
return a;
}
int ans = exgcd(b, a % b, ans2, ans1);
ans2 -= ans1 * (a / b);
return ans;
}
int inv(int i) {
int x, y;
int sum = exgcd(i, mod, x, y);
if(sum != 1) return -1; //判无解
return (x % mod + mod) % mod; //化负为正
}
3):递推式
先上代码:
inv[1] = 1;
for(int i = 2; i <= n; i++) inv[i] = (p - p / i) % p * inv[p % i] % p;
推导:
设 t = ⌊ t = \lfloor t=⌊ p i p \over i ip ⌋ , k = p % i \rfloor,k = p \% i ⌋,k=p%i
∴ p = i × t + k ⇒ i × t + k ≡ 0 ( m o d p ) \therefore p = i × t + k \Rightarrow i × t + k \equiv 0(mod \ p) ∴p=i×t+k⇒i×t+k≡0(mod p)
∴ i × t ≡ − k ( m o d p ) \therefore i × t \equiv -k(mod \ p) ∴i×t≡−k(mod p)
设 i n v [ i ] inv[i] inv[i]为 i i i对于 % p \% p %p的乘法逆元
∴ i × t × i n v [ i ] × i n v [ k ] = − k × i n v [ i ] × i n v [ k ] \therefore i × t × inv[i] × inv[k] = -k × inv[i] × inv[k] ∴i×t×inv[i]×inv[k]=−k×inv[i]×inv[k]
∴ t × i n v [ k ] = − i n v [ i ] ⇒ t × i n v [ k ] ≡ − i n v [ i ] ( m o d p ) \therefore t × inv[k] = -inv[i] \Rightarrow t × inv[k] \equiv -inv[i](mod \ p) ∴t×inv[k]=−inv[i]⇒t×inv[k]≡−inv[i](mod p)
将 k k k和 t t t带入得:
∴ ⌊ \therefore \lfloor ∴⌊ p i p \over i ip ⌋ × i n v [ p % i ] ≡ − i n v [ i ] ( m o d p ) \rfloor × inv[p \% i] \equiv -inv[i](mod \ p) ⌋×inv[p%i]≡−inv[i](mod p)
i n v [ i ] = − ⌊ inv[i] = -\lfloor inv[i]=−⌊ p i p \over i ip ⌋ × i n v [ p % i ] % p \rfloor × inv[p \% i] \% p ⌋×inv[p%i]%p
将 − ⌊ -\lfloor −⌊ p i p \over i ip ⌋ \rfloor ⌋化负为正得:
i n v [ i ] = ( p − ⌊ inv[i] = (p-\lfloor inv[i]=(p−⌊ p i p \over i ip ⌋ ) % p × i n v [ p % i ] % p \rfloor) \% p × inv[p \% i] \% p ⌋)%p×inv[p%i]%p
4):求阶乘逆元的递推式:
代码:
inv[i] = inv[i + 1] × (i + 1) % p
因证明太过于复杂且用处不大,故省去。
到这里,数论的所有基础知识就结束了,以后应该还会继续更新的~