# 整除
a∣b:這是一個整除的符號。意思代表:a 可以整除 b
- a∣b∧b∣c≡a∣c:a 可以整除 b, b 可以整除 c。因此 a 可以整除 c。
- (a∣b∧a∣c)→a∣mb+nc(∀m,n∈Z):如果 a 可以整除 b, 且 a 可以整除 c, 那麼 a 一定可以整除 mb, nc, 且 m,n 都是整數。
# 餘數
餘數的定義是假設有一個 a, 除以 b , 剩下餘數 r, 和商數 q 寫做。並且餘數一定要是正的。
a=b⋅q+r(0≤r<∣b∣)
例如:
- 10÷2=5...0
- (−11)÷3=3...2
−11=3⋅3+2
# 同餘 (mod)
mod 意思:代表兩數為同一個餘數。例如:
- 5≡3 (mod 2):代表他們除以 2, 之後的餘數都會相等。
5÷2=2⋯13÷2=1⋯1
- r=3 (mod 2) : 代表要把 3 除以 2 之後的餘數丟給 r, 意思大大的不同。
∵3÷2=1⋯1∴r=1
# 同餘等式
- 這一個只是將 mod 重新展開而已。
a≡b (mod m)↔∃k st. a=b+k⋅m
- 如果左邊的兩項成立,那麼右邊的也會成立。
a≡b (mod m)c≡d (mod m)}→a+c≡b+d (mod m)
這邊就開始證明:
∵a≡b (mod m) ∴∃k1 st. a=b+k1⋅m∵c≡d (mod m) ∴∃k2 st. c=d+k2⋅m
然後把以上兩個式子相加起來,k1+k2 得到的結果還是整數,所以這樣的證明是成立的。
(a+c)=(b+d)+(k1+k2)⋅m ⋯⋯(1)+(2)=(b+d)+(number)⋅m∴a+c≡b+d (mod m)
# 質數
定義:P≥2 is a prime if the only factors P are 1 and P.(質數必須大於 2, 且因數只有 1 和 p 而已)
非質數:if q≥2,∧q is not prime, q is composit. (如果 P 大於等於 2, 且他不是質數,那麼他就是複合數)
# 最大公因數
定義:可以同時整除兩個數且是最大的數
最大公因數可以拆解為兩個概念,一個是公因數,另外一個是最大。
- 公因數:兩個數字可以同時被一個數字整除
- 最大:再取這個數組裡面的最大值
因此就可以求出最大公因數
gcd(a,b)=max(m:m∣a∧m∣b)
# 最小公倍數
一個數可以被 a 和 b 整除,但是有可能他會是一個負數,而我們不希望出現這種狀況,所以必須給他加入一個 Z+
lcm(a,b)=min(m∈Z+:a∣m∧b∣m)
# 練習
- If n is a composite integer, then n has a prime divisor less than or equal to n
(n 是一個複合數,那他會有個質因數必定小於等於 n)
hint:這個都不會是正面證法,所以使用反證法。不過我個人覺得這個證明並不嚴謹,只是用來對證明有初步的了解
∵n is composite ∴n=p⋅qlet p,q>np⋅q>n⋅n=n∴p,q one is less or equaln.
# 歐幾里得演算法 (Euclidean algorithm)
這個是最大公因數的演算法,又稱輾轉相除法
這個可以用在除法和乘法,但除法需要再 r 加上絕對值。下面是要證明的東西,他需要用到兩個分別的證明
a,b,q,r ∈Z. if a=b⋅q+r,then gcd(a,b)=gcd(b,r)
- 證明:如果 c 是 a 和 b 的公因數,那麼 c 也會是 b 與 r 的公因數
∵r=a−b⋅q and c∣a∧c∣b∴c∣a−bq i.e. c∣r
- 證明:如果 c 是 b 和 r 的公因數,那麼 c 也會是 a 和 b 的公因數
∵ a=bq+r and c∣b∧c∣r∴ c∣bq+r i.e. c∣a
# 擴展歐幾里得算法 (Extended Euclidean Algorithm)
假設有 a, b 且有 gcd (a,b), 那麼他們一定會有 好幾倍的 a 和 好幾倍的 b 相減得到 gcd (a,b)
∀a,b∈Z, ∃s,t∈Z s.t. s⋅a+t⋅b=gcd(a,b).
Find s,t∈Z s.t. s⋅528+t⋅35=gcd(528,35)
528353=15⋅35+3=11⋅3+2=1⋅2+1
因此 gcd(528,30)=6, 再來將過程反過來。
1=3−1×2=3−(35−11×3)=12×3−35=12×(528−15×35)−35=12×528−181×35
故得到,s = 12, t = -181
# 練習
如果有兩數 a,b 互質那麼,且 a|bc , 那麼 a|c。這樣的說明可以寫成下面的樣子
a,b,c∈Z+
If gcd(a,b)=1 and a∣bc, then a∣c
∵gcd(a,b)=1∴∃s,t s.t.sa+tb=1(sa+tb)⋅c=sac+tbc=c∵a∣sac∧a∣tbc∴a∣sac+a∣tbci.e.a∣c
# 消去率
如果 ac 同餘 bc 在(modm), 且 c,m 互質,那麼 a 會同餘 b 在(modm)
m∈Z+,a,b,c∈Z
If ac≡bc(mod m)∧gcd(c,m)=1,then a≡b(mod m)
∵ac≡bc(mod m) ∴m∣ac−bc i.e. m∣(a−b)⋅c∵gcd(c,m)=1∴m∣a−b i.e. a≡b(mod m)
# 反元素
如果 gcd(a,m)=1, 存在另外一個數字 b , 使得 a⋅b 在 (mod m) 底下是 1
gcd(a,m)=1∃b s.t. ab≡1 (mod m)
以下三個都是表達 a,b 互為倒數的描述。
a⋅bba≡1(mod m)≡a−1(mod m)≡b−1(mod m)
下面開始證明。sa+tm=1 被同除與 m 的時候,因為 tm 可以被整除,所以不會有餘數,但是 sa 除 m 會有。所以 sa +tm =1 同除以 m 就可以表達成 sa≡1(mod m)
∵gcd(a,m)=1∴sa+tm=1sa+tm=1(mod m) i.e. sa≡1(mod m)
因此 s 就是 a 的倒數
令a=5,m=3
∵gcd(a,m)=1 求 s 使得 sa≡1(mod m)
gcd(5,3)=5−3×1=2=3−1×2=1}歐幾里得算法
1=3−1×2=3−1×(5−1×3)=2×3−1×5}擴展歐幾里得算法
到這步我們要的sa+tm=1 的s=−1, 但是負數並不是我們想要的結果
5⋅(−1)⇒5−1=1(mod 3)=−1(mod 3)=2(mod 3)
假設在計算7×5−1(mod 3) 可以化成以下的技巧
7×5−1(mod 3)=7×2(mod 3)=2
# 中國餘式定理
這是一個求解的方式,有很多的同餘式子,但他們的聯立起來的解究竟要怎麼求得,就是中國餘式定理
求三個聯立的解,並且 mod 裡面的數必需兩兩互質
⎩⎨⎧x≡1(mod 3)x≡2(mod 5)x≡3(mod 7)
而他的 x 一定是 (number) * 3×5×7 的等式
x≡remainer(mod 3×5×7)
然後把上面的數字分別對應m1,m2,m3...
⎩⎨⎧x≡a1(mod m1)x≡a2(mod m2)x≡a3(mod m3)
再來
M=m1×m2×m3=105M1=m1M=35M2=m2M=21M3=m3M=15M1y1≡1(mod m1)M2y2≡1(mod m2)M3y3≡1(mod m3)
⎩⎨⎧35×y1≡1(mod 3)21×y2≡1(mod 5)15×y3≡1(mod 7)
不過這邊因為數字很小,所以可以這樣做,就拿第一個等式舉例。因為他的餘數是一樣的。
35×y1⇒2×y1y1≡1(mod 3)=1(mod 3)=2
按照這樣的方法可以求得
y1=2y2=1y3=1
最後 x 可以等於
(i=0∑3aiyiMi)mod Mx=(a1y1M1+a2y2M2+a3y3M3)mod M=(1⋅2⋅35+2⋅1⋅21+3⋅1⋅15)(mod 105)=52 mod(105)=52
當除數有一個並不是質數的話。
⎩⎨⎧x≡2(mod 3)x≡3(mod 5)x≡2(mod 15)
其中因為x≡2(mod 15) 的 15 並不是質數,因此我們可以把拆成兩個式子。把將原本的餘數和公因數取餘數就會得到新的餘數。ex 2(mod15) 把 2 在做 mod 3 , 這個餘數就是 3 的餘數了。
x≡2(mod 15){x≡2(mod 3)x≡2(mod 5)
將他帶進去原本的算式裡面
⎩⎨⎧x≡2(mod 3)x≡3(mod 5)x≡2(mod 3)x≡2(mod 5)
可以發現他們互相矛盾,所以此題無解
⎩⎨⎧x≡2(mod 4)x≡4(mod 6)x≡10(mod 30)
x≡10(mod 30){x≡0(mod 5)x≡4(mod 6)
x≡4(mod 6){x≡0(mod 2)x≡1(mod 3)
結合上面的算式,可以得到新的算式
⎩⎨⎧x≡2(mod 4)x≡0(mod 5)x≡1(mod 3)
這邊就產生一個新的疑問,x≡2(mod 4) 是不是能等於x≡0(mod 2)。答案是不行的,因為能被 2 整除的數,在被 4 除的時候,有可能不會餘 2。例如 8 能整除 2, 但是除 4 不是餘 2。
# 費馬小定理 (Fermat’s little theorem)
If p is prime and a is an integer not divisible by p, then
ap−1≡1 (mod p)
調整一下可以得到
ap≡a (mod p)