1. 程式人生 > >第二章 數論基礎(未完)

第二章 數論基礎(未完)

跳過 大數運算 簡單的 nbsp -m 之一 需要 加法 mod

1 整除性和帶余除法

1.1 整除

設$a$,$b$均為正數,若存在整數$m$使得$a=m\times b$成立,則成為非零數$b$整除$a$,換而言之,若$b$除$a$沒有余數,則認為$b$整除$a$.表示為$b|a$,同時也稱為:$b$是$a$的一個引子。

(註意,小的能夠整數大的。在用$|$表示的時候,小數在前,大數在後。$m$可正負數都可以,但是不能為0)

因此有如下性質:

  1. 若$a|1$,則$a=\pm 1$
  2. 若$a|b$且$b|a$,則$a=\pm b$
  3. 若$a|b$且$b|c$,則$a|c$,例如$2|4$,$4|8$,那麽$2|8$
  4. 對於任意整數$m$,$n$,若$b|g$且$b|h$,那麽$b|(m/times g+ n/times h)$,例如$3|6$,$3|9$,那麽$3|(6n+9
    m)
  5. 若$b|g$,那麽就存在$g_1$,使得$g$可以表示為$g=b\times g_1$

1. 2 帶余數除法

對於給定的任意一個正整數$n$和任意非負整數$a$,若用$n$除$a$,得到整數商$q$和整數余數$r$,則滿足:
$a=q\times n +r$, $0 \le r \le n $且$q=\lfloor a|n \rfloor $
其中$\lfloor a|n \rfloor$表示向下取整,例如,$\lfloor 1.9 \rfloor = 1$。
稱為帶余除法。

2 最大公因子

歐幾裏得算法是數論中一個最基本的技巧,用於求兩個正整數的最大公因子。

互素:如果兩個整數只有一個整數的公因子$1$,稱為互素

2.1 最大公因子

最大公因子必須是正數。

當$a=m\times b$時,稱$b$是$a$的一個因子。
使用$d=gcd(a,c)$,稱$d$為$a$和$b$的最大公因子。
定義$gcd(0,0)=0$,$gcd(a,0)=|a|$
如果$c$是$a$和$b$的最大公因子,那麽$a$,$b$的所有因子都是$c$的一個因子。
例如$gcd(30,24)=6$,而$2$,$3$都是$24$和$30$的因子,並且也是$6$的因子。

因為要求最大公因子必須是正數,因此一般來說都是$gcd(|a|,|b|)$

2.1 歐幾裏得算法

歐幾裏得算法的步驟是:

  1. 假設求$a$,$b$的最大公因子$d$,並且假設$0 \le b\le a$
  2. 使用帶余除法,$b$除$a$可以表示為:$a=b q_1 \times b + r_1$,$0 \le r_1 <b$
  3. 當$r_1 =0$時,可知$b$整除$a$,且$a$中不存在比$b$大的因子了。 就比如 $gcd(18,6)$,18 \div 6 =3 $
  4. 當$r_1 \neq 0 $ ,那麽一定有$b|r_1$,因為:$d|a$且$d|b$,那麽一定有$d|(a-q_1 \times b)$ .因此$gcd(a,b)=gcd(b,r_1 )$.

3 模運算 $mod$

如果$a$說是一個整數,$n$是一個正整數,那麽我們定義$a \div n$的余數為 $a$ 模$n$。整數$n$稱為模數。

$a=q\times n+ r$ ,$0 \leqr<n; q=\lfloor a \div n \rfloor$等價於 $a=\lfloor a \div n \rfloor \times n + (a mod n)$

3.1 同余性質

如果$(a mod n = (b mod n))$,則稱整數$a$,$b$是模$n$同余的。可以表示為$a \equiv b(mod n)$,其含義還有:$a(mod b) = a\times (a mod b)$。其意思就是 $a$和$b$對$n$取模的結果相同

  1. 若$n|(a-b)$,則$a \equiv b(mod n)$.因此等價於:$a \equiv b \times (b mod n)$
  2. 若$a\equiv b(mod n)$,則有$b \equiv a(mod n)$ .對稱?
  3. 若$a\equiv b(mod n)$,$b \equiv c(mod n)$,則有$a \equiv c(mod n)$

3.2 模運算

運算符 $mod$ 將所有的整數映射到集合${0,1,2\ldots n-1}$.
模運算具有如下的性質:

  1. $[(a mod n)+(b mod \n)] mod n=(a+b) mod n$
  2. $[(a mod n)-(b mod \n)] mod n=(a-b) mod n$
  3. $[(a mod n)\times (b mod \n)] mod n=(a\timesb) mod n$

也就是說除了除法以外都滿足結合律。但是註意,不是簡單的結合律!

加法逆元:就是相反數
乘法逆元:乘法逆元,是指數學領域群$G$中任意一個元素$a$,都在$G$中有唯一的逆元$a‘$,具有性質$a×a‘=a‘×a=e$,其中$e$為該群的單位元。
例如:$4 \times X \equiv 1 mod 7$ 就是$4 \times X = 7\times k +1$

另外有如下的性質:

  1. 滿足加法和乘法交換律: $(w+x) mod n = (x+w) mod n$,乘法也滿足
  2. 滿足加法和乘法的結合律:$(x\times y\times z) mod \n n=(x\times (y\times x)) mod n$
  3. 滿足分配律:$(x\times (y+z)) mod n = (x\times y+x\times z) mod n$
  4. 單位元:加$0$或乘$1$不改變結果

剩余類,使用$[m]$表示一個集合,意思是該集合內所有的數(包含正負數),對$n$取模的結果相同。

4 素數

或是質數
數論的核心是素數:當一個整數$p>1$,他的因子只有$\pm 1$和$\pm p$時,成這個數為素數.
任意一個數都可以分解為:$a=p_1^{a_1}+p_2^{a_2}+p_3^{a_3}+\dots +p_m^{a_m}$。也就是多個素數的成績形式。
從這個角度來解釋整除,其所含有的素數相同(次數可能不同)
從這個角度來解釋最大公因子,則是兩個數都含有的最大的那個素數。

5 費馬定理和歐拉函數

5.1 費馬定理

若$p$是素數,$a$是整數,且不能被$p$整除(a中不含素數$p$),那麽:
$a^{p-1} \equiv 1( mod p)$
就是說,對$p$取模,結果是1.
而更一般的形式是:
$a^{p} \equiv a( mod p)$

5.2 歐拉函數

歐拉函數:$\phi(n)$只的是小於$n$且與$n$互素的正整數的個數。其中$\phi(1)=1$
因此,如果$p$是素數,那麽$\phi(p)=p-1$:因為,素數與任何數都互素,而小於$p$的有$p-1$個
且,滿足$\phi(p_1 \times p_1) = (p_1 -1)\times (p_2 -1)$.

對於任意兩個互素的$p_1$和$p_2$,有:$p_1^{\phi(p_2)} \equiv 1( mod p_1)$,其實是費馬定理的特別形式,也就是說底數也是一個素數。
因此也可以表示為:$p_1^{\phi(p_2)+1} \equiv p_1 ( mod p_2)$

6 素數測試

很多密碼算法需要隨機選取一個或是多個非常大的叔叔,因此需要一個能確定給定的大數是否是素數的方法。

跳過。

7 中國剩余定理

問題:找出所有的整數$x$,它們被$3$,$5$,$7$整除時余數分別為$2$,$3$,$2$,那所有解的形式為$23+105\times k$
// 定義:令$a=p_1 \times p_2 \times \dots \times \p_n$,其中因子$p_i$兩兩互素

中國余數定理的用途之一是:給出了是模$M$的大數運算轉化為相對較小數的運算。

第二章 數論基礎(未完)