寫着一部分的時候我是抗拒的,不想看數學,不想看數學,不想看數學!!!!!但是,我和小伙伴說看到這不想看的時候,他說,這是精華啊,快看!!!!!嗚嗚嗚嗚嗚,淺看一下吧。菜鳥進擊-------------------------------------------------------------------
1、整除性和除法
1.1.1 整除性
設a,b,m是整數,如果 a = mb,我們說非零整數b整除a。用 b | a表示b整除a,此時b是a的因子。如:6 | 24,13 |182, -5 | 20, -3 | 33
接下來看整數整除的性質:
- 如果 a | 1,則 a = ± 1
- 如果 a | b 且 b | a,則 a = ± b
- 任意非零整數b整除0
- 如果 a | b,b | c,則 a | c 比如 11 | 66,66 | 198 = 11 | 198
- 如果 b | g,b | h,則對任意的整數m和n,有 b | ( mg + nh )
1.1.2 除法
給定任意正整數n和任意非負整數a,如果用n除a,我們得到一個整數商q和一個整數余數r,可寫成
a = qn + r 0 ≤ r < n;q = (a/n)下取整
余數r經常被稱為剩余數。
2、歐幾里得算法Euclid:求兩個正整數的最大公因子
2.1 最大公因子
我們用gcd( a , b )表示a和b的最大公因子,即能夠同時整除a和b的最大整數。定義特殊點gcd( 0, 0 ) = 0。假設c是a和b的最大公因子,則有以下性質:
c是a和b的因子
a和b的任何因子都是c的因子
公式定義為gcd( a, b ) = max [ k, k | a 且 k | b]
因為我們所求的最大公因子是正數,所以gcd( a, b ) = gcd( a, -b ) = gcd( -a, b ) = gcd( -a, -b ) 。如gcd( 60, -24 ) = 12。特殊的gcd( a, 0 ) = |a|
如果gcd( a, b ) = 1,那么我們稱a和b互素。
2.2 求最大公因子
輾轉求余法知道d = gcd ( rn, 0 ) = rn
3、模運算
3.1 模
如果a是整數,n是正整數,則定義a模n是a除以n所得的余數。整數n稱為模數。因此,對於任意整數a,總有 a = qn + r 0 ≤ r < n;q = (a/n)向下取整
11 mod 7 = 4; -11 mod 7 = 3
如果( a mod n ) = ( b mod n ),則稱整數a和b是模n同余的。可以表示為a ≡ b ( mod n )。如果 a ≡ 0 ( mod n ),則 n | a。
3.2 同余的性質
- 如果 n | (a - b),那么 a ≡ b ( mod n )
- a ≡ b ( mod n ),隱含b ≡ a ( mod n )
- a ≡ b ( mod n ),b ≡ c ( mod n ),那么a ≡ c ( mod n )
3.3 模算術運算
根據定義可知,運算 mod n將所有的整數映射到集合{ 0,1,2,……,n - 1 }
模算術有以下性質
- [ ( a mod n ) + ( b mod n ) ] mod n = ( a + b ) mod n
- [ ( a mod n ) - ( b mod n ) ] mod n = ( a - b ) mod n
- [ ( a mod n ) * ( b mod n ) ] mod n = ( a * b ) mod n
3.4 模運算的性質
定義比n小的非負整數集合為Zn:Zn = { 0,1,2,……,n - 1 },這個集合被稱為剩余類集,或模n的剩余類。准確地說,Zn中每一個整數都代表一個剩余類。我們可以將模n的剩余類表示為[0] [1] [2] …… [n - 1],其中[r] = {a:a是一個整數,a ≡ r ( mod n )}
舉個栗子吧,這里需要一個栗子
- 模4的剩余類:
- [0] = { …… -16 -12 -8 -4 0 4 8 12 16 ……}
- [1] = { …… -15 -11 -7 -3 1 5 9 13 17 ……}
- [2] = { …… -14 -10 -6 -2 2 6 10 14 18 ……}
- [3] = { …… -13 -9 -5 -1 3 7 11 15 19 ……}
從栗子中可以看出,在剩余類的所有整數中,通常用最小的非負整數代表這個剩余類。尋找與k是同余的最小非負整數的過程,稱為模n的k約化。
3.5 修改的歐幾里得算法
對於任意非負整數a和任意正整數b gcd ( a,b ) = gcd ( b,a mod b )
if ( b = 0 ) then return a;
else return Euclid ( b, a mod b);
3.6 擴展歐幾里得算法
d = gcd ( a,b ) = ax + by
對於給定的整數a和b,ax+by的最小正整數等於 gcd ( a,b )
對於給定的a和b,擴展歐幾里得計算( x, y, d )。
4、群 環 域
4.1 群
代數結構 - 吉吉的奧利奧 - 博客園 (cnblogs.com) 這里有過介紹
設<G,*>是一個代數系統,其中G是非空集合,*是G上一個二元運算,G中的每一個序偶( a,b )通過計算生成G中的元素 ( a*b ),並滿足以下公理
(1)運算*是封閉的:如果a和b都屬於G,則a*b也屬於G
(2)運算*是可結合的:對於G中任意元素a、b、c,都有a * ( b * c ) = ( a * b ) *c
(3)存在幺元e:G中存在一個元素e,對於G中任意元素a,都有a*e = e*a = a成立
(4)對於每一個元素x∈G,存在着他的逆元x-1,使得x * x-1 = x-1 * x = e
則稱<G,*>是一個群。
在此,如果對於G中任意元素a和b,都有a * b = b * a成立,則<G,*>是一個交換群(阿貝爾群)。
循環群:
定義a0 = e 作為單位元,如果群中每一個元素都是一個固定元素a的冪ak,則稱群G為循環群。我們認為元素a生成了群G,或者說a是群G的生成元。循環群總是交換群,有可能是有限群,也有可能是無限群。
4.2 環
環R是一個有兩個二元運算的集合,這兩個二元運算分別稱為加法和乘法,對於R中任何元素abc滿足以下公理:
(1)R關於加法是一個交換群
(2)如果a和b都屬於R,則ab也屬於R
(3)對於R中任意元素abc,有a(bc) = (ab)c
(4)對於R中任意元素abc,都有a ( b + c ) = ab + ac; ( a + b )c = ac + bc
本質上環就是一個集合,我們可以在上面進行加減乘法而不脫離該集合。
實數上所有n階方陣的集合關於加法和乘法構成一個環。
在此,對於R中任意元素a、b,有ab=ba,則R是一個交換環。Zn就構成一個交換環。
基於交換環,滿足乘法單位元1使得a1=1a=a;無零因子若ab=0,則必有a=0或者b=0,我們稱為整環。
4.3 域
域F是一個有兩個二元運算的集合,這兩個二元運算分別稱為加法和乘法,對於R中任何元素abc滿足以下公理:
(1)F是一個整環
(2)F中任意元素a(除0),F都存在一個元素a-1使得aa-1=a-1a=1成立
本質上域就是一個集合,我們可以在上面進行加減乘法而不脫離該集合。除法可以定義為a/b=a*b-1
5、有限域GF(p)
階為pn的有限域一般記為GF(pn),GF代表Galois域,以一位研究有限域的數學家名字命名。
5.1 階為p的有限域
給定一個素數p,元素個數為p的有限域GF(p)被定義為整數{0,1,2,……,p - 1 }的集合Zp,其運算為模p的算術運算。比如Z7就是一個有限域,每個元素都有a + b = 0 mod 7,a * b = 1 mod 7。
5.2 求GF(p)中乘法逆元
根據擴展歐幾里得算法得知,如果 by mod a = 1,則y = b-1
6、多項式運算
6.1 普通多項式運算
一個n次多項式可以寫為 f(x) = anxn + an-1xn-1 + …… + a1x + a0 = Σi=0 n aixi,其中ai是指某個系數集S中的元素,且an ≠ 0。我們稱f(x)是定義在系數集S上的多項式。
6.2 系數在Zp中的多項式
假如系數集S是域F的元素,我們稱其為域F上的多項式。這種情況下,系數集S是一個環,稱為多項式環。
對我們而言GF(2)上的多項式最有意義。他的加法等價於異或運算,乘法等價於邏輯與運算。模2的加減法是等價的。
域F上的多項式f(x)被稱為不可約的/既約的。當且僅當f(x)不能表示為兩個多項式的積。一個不可約多項式也成為素多項式。
7、有限域GF(2n)
7.1 動機
我們要尋找一個包含2n個元素的集合,其上定義了加法和乘法使之成為一個域。給集合的每一個元素賦值為0到2n-1之間唯一的整數。我們不會使用模算術,因為那樣不能構成域。我們使用多項式算術來構造需要的域。
7.2 多項式模運算
f(x) = an-1xn-1 + …… + a1x + a0 = Σi=0 n-1 aixi ai在集合{0,1,……,p - 1}
如果乘法運算的結果是次數大於n-1的多項式,那么必須將其除以某個次數為n的既約多項式m(x)取其余式r(x),即r(x) = f(x) mod m(x)
設m(x)為n次多項式,則模m(x)剩余類集合有pn個元素,其中每個元素都可以表示成一個m次多項式(m<n)。
以m(x)為模的剩余類[x+1]由所有滿足a(x)≡(x+1) mod m(x)的多項式a(x)組成。就是說,剩余類[x+1]中的所有多項式a(x)滿足等式a(x) mod m(x) ≡ (x+1) 。
由此可知,以n次既約多項式m(x)為模的所有多項式組成的集合滿足域的所有公理,形成一個有限域。任意具有相同的階的有限域具有相同的結構,但是元素的表示和標記可能不同。構造一個有限域GF(23),需要選擇一個3次既約多項式,使得不同函數的加乘模上既約多項式之后都在該有限域內。
7.3 求乘法逆元
可以由擴展歐幾里得算的
7.4 多項式的特性
f(x) = an-1xn-1 + …… + a1x + a0 = Σi=0 n-1 aixi
可以由n個二進制系數(an-1,an-2,……,a1,a0)系數表達法唯一的表達。因此,多項式可以表示成一個n位的二進制整數。
加法可以由異或得到,乘法一般的,在GF(2n)上的對於n次多項式p(x),有 xn mod p(x) = p(x) - xn
7.5 生成元
1、階為q的有限域F的生成元是一個元素g,即域F的元素為0,g0,g1,g2,……,gq-2。考慮到由多項式f(x)定義的域F,如果F內的一個元素b滿足f(b)=0,則稱b為多項式f(x)的跟。
一個不可約多項式的根g是這個不可約多項式定義的有限域的生成元。
舉個栗子,這里還蠻難理解的。
構造一個有限域GF(23),需要選擇一個3次既約多項式,x3 + x + 1。設生成元為g,則g滿足f(g) = g3 + g + 1 = 0。因此,方程解滿足 g3 = -g - 1 = g + 1。
g4 = g * g3 = g ( g + 1 ) = g2 + g
g5 = g * g4 = g ( g2 + g ) = g3 + g2 = g2 + g + 1
g6 = g * g5 = g ( g2 + g + 1 ) = g3 + g2 + g = g2 + g + g + 1 = g2 + 1
g7 = g * g6 = g ( g2 + 1 ) = g3 + g = g + g + 1 = g0
g的冪產生了GF(23)所有的非0多項式。同樣的,對所有k,有gk = gk mod 7
冪表示 | 多項式表示 | 二進制表示 | 十六進制表示 |
0 | 0 | 000 | 0 |
g0 | 1 | 001 | 1 |
g | g | 010 | 2 |
g2 | g2 | 100 | 4 |
g3 | g + 1 | 011 | 3 |
g4 | g2 + g | 110 | 6 |
g5 | g2 + g + 1 | 111 | 7 |
g6 | g2 + 1 | 101 | 5 |