Integers
This presentation is the property of its rightful owner.
Sponsored Links
1 / 57

Integers PowerPoint PPT Presentation


  • 111 Views
  • Uploaded on
  • Presentation posted in: General

Integers. §3.4 The Integers and Division §3.5 Representations of Integers §3.6 Integers and Algorithms §3.7 Application of Number Theory. 整數與除法 ( §3.4). 在數學中牽涉到整數及其性質的分支稱為數論 (number theory) 。由本節開始,我們將闡述貫穿電腦科學中所用到之數論的基本概念。 除法與模算術等基本概念 質數與最大公因數的計算 介紹幾個與數論有關的演算法,並探究這些演算法的複雜度

Download Presentation

Integers

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Integers

Integers

§3.4 The Integers and Division

§3.5 Representations of Integers

§3.6 Integers and Algorithms

§3.7 Application of Number Theory


Integers

整數與除法(§3.4)

  • 在數學中牽涉到整數及其性質的分支稱為數論(number theory)。由本節開始,我們將闡述貫穿電腦科學中所用到之數論的基本概念。

    • 除法與模算術等基本概念

    • 質數與最大公因數的計算

    • 介紹幾個與數論有關的演算法,並探究這些演算法的複雜度

    • 介紹數論的重要結果及其在電腦算術與密碼學上的應用


Integers

除法

  • 定義:Let aand bbe integers and let a 0. We say that a divides b (a整除b), if there is an integer c such that b = ac. Noted ab.

    When a divides b, we call a is a factor (因數)of b, and b is a multiple (倍數) of a.


Integers

  • 例:判斷是否37與312是否成立。

  • 解:

  • 例:令n與d為正整數。有多少個小於n的正整數能被d整除?

  • 解:


Integers

  • 定理:令a,b與c為整數。則

    (1) 若ab且ac,則a(b + c)。

    (2) 若ab,則對所有的整數c,abc。

    (3) 若ab且bc,則ac。

  • 系理:若a,b與c為整數,使得ab和ac,則amb + nc,其中m與n為整數。

  • 除法定理(The Division Algorithm)

    令a為整數而d為正整數。存在唯一的整數q和r,使得 a = dq + r,其中0 r < d。


Integers

  • 定義:在除法定理的等式中,d稱為除數(divisor)、a稱為被除數(dividend)、q為商數(quotient),而r為餘數(remainder)。下面的符號用來表現商數與餘數:

    q = adivd,r = amodd。

  • 例:當101除以11時,商數與餘數各為何?

  • 解:


Integers

  • 例:當11除以3時,商數與餘數各為何?

  • 解:


Integers

  • 定義:If a and b are integers, m is a positive integer.

    If mdivides ab, then we say that a is congruent to b modulo m(在模m時a同餘於b). Denote that

    ab (mod m).

  • 定理: If a and b are integers, m is a positive integer. Then ab (mod m) if and only if

    amod m = bmod m.


Integers

  • 例: Is 17 congruent to 5 modulo 6?

    Is 24 congruent to 5 ?

  • 解:


Integers

  • 定理:Let m be a positive integer. When a is congruent to b mod m if and only if there is an integer k such thata = b + km.

  • 證明:


Integers

  • 定理: Let m be a positive integer.

    If ab (mod m) and cd (mod m), then

    a + c b + d (mod m) and acbd (mod m)。

  • 證明:


Integers

  • 例:因為7  2 (mod 5)與11  1 (mod 5),

    根據定理,

    18 = 7 + 11  2 + 1 = 3 (mod 5)。

    所以,

    77 = 711  21 = 2 (mod 5)。


Integers

  • 系理:Let a and b be integers and let m be a positive integers. Tehn

    (a + b) mod m = ((amodm) + (bmod m)) modm, and abmod m = ((amodm)(bmod m)) modm.

  • 證明:


Integers

同餘的應用

  • 散置函數(hashing function)

    • 在保險公司的中央電腦內都會存有每位客戶的資料。必需如何安排每位客戶資料的記憶位址,才能很方便的被檢索出來?這個問題的解決辦法是,選擇一個合適的散置函數。資料使用鍵值(key)來識別。例如,客戶資料通常以社會安全號碼當成鍵值來做識別。

    • 最經常被使用的散置函數為h(k) = kmodm,其中m為可使用之記憶位址個數。

    • 散置函數必須很容易計算,檔案才能很快的找到。

    • 散置函數應該要映成的,這樣所有記憶位址都有可能使用到。


Integers

  • 密碼學

    • 同餘最重要的應用之一就是密碼學(cryptology),一個關於祕密信息的研究。這種製造祕密信息的過程稱之為加密(encryption)。

    • 密碼的使用,最早可追朔至凱撒大帝(Julius Caesar)。他將信息中每個字的字母向後移動三個,而最後面的三個字母則以最前三個字母來替代。


Integers

  • 例:根據凱撒大帝的密碼製作方式,下面的信息“MEET YOU IN THE PARK”會被轉換成什麼?

  • 解:首先將每個字母改寫成數字如下:

    利用f(p) = (p + 3) mod 26找出替換的數字,

    最後,轉換成字母,信息如下:


Integers

質數

  • 定義:一個大於1的正整數p稱為質數(prime),如果p只有1和p兩個正因數。一個大於1的正整數若不為質數,便稱為合成數(composite)。

  • 注意:整數n為合成數若且惟若存在整數a, 1 < a < n,使得an。

  • 例:整數7為質數,因為其正因數只有1與7。而9是個合成數,因為它能被3整除。


Integers

  • 算術基本定理(The fundamental Theorem of Arithmetic) 每個大於1的正整數都能唯一表為一個質數,或是兩個或兩個以上之質數(依非遞減之方式排列)的乘積。

  • 100 = 2222 = 2252

    641 = 641

    999 = 33337 = 3337


Integers

  • 定理:若n為合成數,則

    必有一個n的質因數不大於(n)1/2。

  • 證明:若n為合成數,則根據合成數的定義,存在因數a,1 < a < n,使得an。故,n = ab,其中b為一個大於1的正整數。若a > (n)1/2且b > (n)1/2,則ab > (n)1/2 (n)1/2 = n,會產生矛盾。所以得證 a  (n)1/2且b (n)1/2。


Integers

  • 例: 證明101為質數。

  • 解:


Integers

  • 定理:質數有無限多個。

  • 證明:我們將使用歸謬證法。

    假設質數只有有限個,p1, p2, …, pn。

    令Q = p1p2 …pn + 1。

    根據算術基本定理,Q為質數,或是能表成兩個或兩個以上質因數的乘積。然而,由於Qp1p2 …pn = 1 ,沒有任何一個質數pj能整除Q。因為沒有一個質數能整出Q,所以Q本身為質數。如此一來,便與一開始的假設質數矛盾。在這個證明中,我們明確的找出了一個質數不在原來所列之質數序列之中。


Integers

  • 近300年來,所能找出的最大質數,都有個特殊的形式,2p 1,其中p為質數。這樣的質數稱為梅遜質數(Mersenne primes),根據法國修道士馬梅遜之姓氏命名。之所以知道質數通常有這樣的形式,是因為有個測試法,稱為盧卡司-里莫測試法(Lucas-Lehmer test),能非常有效的判斷出2p 1的數是否為質數。而且,現今任何測試其他形式的數是否為質數的方法,都沒能如盧卡司-里莫測試法來得有效率。

  • 例:下列個數22  1 = 3,23  1 = 7與25  1 = 31都是質數,而211  1 = 2047則不為質數,因為2047 = 2389。


Integers

  • 質數定理(The Prime Number Theorem) 當x區近於無窮大時,不大於x之質數的個數和x/lnx的比值會趨近1。(其中lnx為x之自然對數。)


Integers

有關質數之猜想與未定論問題

  • 哥德巴赫猜想(Goldbach’s Conjecture) 1742年時,哥德巴赫寫了一封信給尤拉,猜測每一個大於5的奇數都能表示成三個質數的和。尤拉回信說,這個猜想其實等價於所有大於2的偶數,都能寫成兩個質數之和。現在,這個猜想被稱為哥德巴赫猜想。我們能檢驗幾個較小的偶數:

    4 = 2 + 2,6 = 3 + 3,8 = 3 + 5,10 = 3 + 7,

    12 = 5 + 7等等。利用現代電腦,哥德巴赫猜想能檢驗至非常大的數。至2006年初,這個猜想已經被檢驗至21017。


Integers

  • 攣生質數猜想(The Twin Prime Conjecture)所謂攣生質數指的是一對相差2的質數,如3與5,5與7,11與13,17與19還有4967和4969。攣生質數猜想聲稱這樣的攣生質數有無限多對。目前所知,最接近的證明為:存在無限多對的p與p + 2,其中p為質數,而p + 2為質數或是兩質數之積。(於1966年,陳潤證出。)截至2006年初,所知最大的攣生質數為16,869,987,339,9752171,960 1這兩個數包含51,779位數。


Integers

最大公因數與最小公倍數

  • 定義:令a與b為兩個非零的整數。一個滿足da與db的最大的整數d稱為a與b的最大公因數(the greatest common divisor),記為gcd(a, b)。

  • 例:何為24與36的最大公因數?

  • 解:

  • 例:何為17與22的最大公因數?

  • 解:


Integers

  • 定義:稱整數a與b是互質的(relatively prime)若它們的最大公因數是1。

  • 例:根據上面的範例可知整數17與22互質,因為gcd(17, 22) = 1。


Integers

  • 定義:稱整數a1, a2, …, an是兩兩互質的(pairwise relatively prime),如果對任意1 i < jn,都有gcd(ai, aj) = 1。

  • 例:判斷10、17和21是否兩兩互質;而10、19和24是否兩兩互質。

  • 解:


Integers

  • 例:因為120與500之質因數分解為120 = 2335,500 = 2253。所以,它們的最大公因數為

    gcd(120, 500)

    =


Integers

  • 定義:正整數a與b之最小公倍數(the least common multiple)為能同時被a與b整除之最小正整數,記為lcm(a, b)。

  • 例:何為233572與2433的最小公倍數?

  • 解:根據公式

    lcm(233572, 2433)

    =


Integers

整數表示法(§3.5)

  • 定理:令b為大於1的整數。若n為正整數,其可唯一表示成下列形態:

    n = akbk+ ak1bk1+ … + a1b + a0

    其中k為非負整數,而ak, ak1,…,a1, a0為小於b的非負整數,且ak 0。

  • 定理:令a與b為正整數。

    則ab = gcd(a, b)lcm(a, b)。


Integers

  • 例:二進位表示法(1 0101 1111)2的十進位表示法為何?

  • 解:由於

    (1 0101 1111)2

    =


Integers

  • 例:十六進位表示法(2AE0B)16的十進位表示法為何?

  • 解:由於

    (2AE0B)16

    =


Integers

  • 例:找出(12345)10的8進位(octal)表示法。

  • 解:


Integers

  • 例:找出(177130)10的十六進位表示法。

  • 解:


Integers

整數運算之演算法(§3.6)

  • 例:將a = (1110)2與b = (1011)2相加。

  • 解:


Integers

  • 例:使用演算法將兩個n位元的整數相加,需要用到多少次的位元加法次數?

  • 解:兩整數相加,基本上是連續相加一對位元和一個進位位元(若必須進位的話)。所以每一個位置需要相加的次數至多為3次。所以,將兩個n位元的整數相加,需要用到的位元加法次數為O(n)。


Integers

  • 例:將a = (110)2與b = (101)2相乘。

  • 解:


Integers

  • 例:利用乘法演算法將整數a與b相乘時,需要用到多少次的位元加法以及位元位移。

  • 解:在演算法中,使用將部份積c0, c1, c2, …和cn1相加來求出a與b的乘積。當bj = 1時,計算部份積cj是將a的二進位表示法位移j個位置;當bj = 0時,不需要做位移,因為 cj = 0。所以,找出n個整數,abj2j,n = 0, 1, 2, …, n1,需要至多

    0 + 1 + 2 + … + n  1

    個位移。根據3.2節的範例,移動次數為O(n2)。

    將整數abj由j = 0加到j = n1,需要將n-位元整數加上一個(n+1)-位元整數,…,加上一個(2n)-位元整數。根據上面的範例知道每次相加需要做O(n)次的位元加法。所以,總共需要的加法次數為O(n2)。


Integers

歐基里得演算法

  • 引理:令a = bq + r,其中a, b, q與r皆為整數。則gcd(a, b) = gcd(b, r)。

  • 歐基里德演算法(Euclidean algorithm;或稱為輾轉相除法)

    • 不斷地將想要求出最大公因數的兩個整數,利用除法將數字約化,直至其中一個變成零為止。


Integers

  • 例:利用歐基里得演算法找出414與662的最大公因數。

  • 解:


Integers

數論的應用(§3.7)

  • 一些有用的結果

    • 定理:若a與b為正整數,則存在整數s與t,使得

      gcd(a, b) = sa + tb。

    • 引理:若a,b和c為正整數,滿足gcd(a, b) = 1和abc,則ac。

    • 引理:若p為質數。且pa1a2…an,其中每一個aj都是整數,則存在某個j,使得paj。

    • 定理:令m為正整數,而a、b和c為整數。若acbc (mod m),而且gcd(c, m) = 1,則ab (mod m)。


Integers

線性同餘

  • 定理:If a and m( > 1) are relatively prime integers, then an inverse of a modulo m exists.

    (若a與m( > 1)為互質整數時,則a在模m下的反元素存在。此外,在模m下此反元素是唯一的。也就是說,存在唯一比m小的正整數a,使得a是a在模m下的反元素,而其他的反元素與a在模m下皆同餘。)


Integers

  • 例: Find an inverse of 3 modulo 7.

  • 解:


Integers

  • 例:線性同餘3x 4 (mod 7)的解為何?

  • 解:根據前例,我們知道3在模7下的反元素為2。


Integers

中國餘式定理

  • 例:在第一世紀中,中國是學家孫子問到:

    今有物,不知其數。三三數之,賸二;五五數之,賸三;七七數之,賸二。問:問幾何?

    這個問題翻譯成數學模型如下:求解下列同餘方程式系統


Integers

  • 中國餘式定理 另m1, m2, …, mn為兩兩互質的整數,而a1, a2, …, an為任意整數。則下列系統

    xa1 (mod m1)

    xa2 (mod m2)

    xan (mod mn)

    在模數m = m1m2 …mn下有唯一解。(也就是說,有一個解x,0 xm,而其他的解都與x在模數m下同餘。)


Integers

  • 要證明此定理,不但要找出同餘方程式系統的解,而且指出在模數m下,解是唯一的。首先,我們將找出一個方法來建構出方程式系統的解。

    令Mk = m/mk,因為當ik時,mi與mk沒有公因數,所以

    gcd(mk, Mk) = 1。根據定理,能找到Mk在模數mk下的反元素yk使得Mkyk 1 (mod mi),其中k = 1, 2, …, n。

    接下來令x = a1M1y1 + a2M2y2 +…+ anMnyn。我們將證明x即為方程式系統的解。因為Mj 0 (mod mk),其中ik。所以,x中所有的項,除了第k項外,其他項在模數mk下皆與0同餘。因此,對所有的k = 1, 2, …, n,

    xakMkykak (mod mk)。即,x為方程式系統的解。


Integers

  • 例:首先,令m = 357 = 105, M1 = m/3 = 35, M2 = m/5 = 21, M3 = m/7 = 15。能找出在模數3下2是M1 = 35的反元素,因為235 = 70  1 (mod 3);在模數5下1是M2 = 21的反元素,因為121 = 21  1 (mod 5);而在模數7下1是M3 = 15的反元素,因為115 = 15  1 (mod 7)。故,

    x = a1M1y1 + a2M2y2 + a3M3y3

    = 2352 + 3211 + 2151 = 233  23 (mod 105)。

    我們能說23是為方程式系統最小的整數的解。


Integers

大數之電腦算術

  • 假設m1, m2, …, mn為大於2且兩兩互質的整數,且令m為這些整數之積。根據中國餘式定理,我們知道整數a(0 a m)能被表示成一個由a除以mi,i = 1, 2, …, n,所得餘數之有序n項。也就是說,a能唯一表成(amod m1, amod m2, …, amod mn)。

  • 例:將12以下的整數,利用除以3與4之餘數,表成數對的形式。

  • 解:


Integers

  • 例: 假定在電腦處理器上,計算小於100的整數,要比大整數快得多。我們便能試著將大整數表成幾個小於100之整數的有序多項。譬如,分別以99、98、97和95為模數。

    利用中國餘式定理,我們能處理所有小於99989795 = 89,403,930之整數的計算。例如,將123,684表為(33, 8, 9, 89),因為123,684 mod 99 = 33;123,684 mod 98 = 8;123,684 mod 97 = 9;123,684 mod 95 = 89。同樣的,可將431,456表成(32, 92, 42, 16)。

    想要找出123,684與431,456之和,能將兩個有序四項直接相加得到下式:(33, 8, 9, 89) + (32, 92, 42, 16)

    = (65 mod 99, 100 mod 98, 51 mod 97, 105 mod 95)

    = (65, 2, 51, 10)


Integers

然後,將所得之有序四項,轉換成4個同餘方程式系統如下:

x 65 (mod 99)

x 2 (mod 98)

x 51 (mod 97)

x 10 (mod 95)。

我們可以求出唯一小於89,403,930的正整數解537,140。故,解為537,140。我們注意到,只有在求(65, 2, 51, 10)所代表之整數時,才會執行大於100之整數的運算。


Integers

擬質數

  • 費馬小定理(Fermat’s Little Theorem)若p為質數而a為不能被p整除的整數,則

    ap1  1 (mod p)。

    更進一步說,對所有的整數a而言

    apa (mod p)。


Integers

  • 定義:令b為一個正整數。若n為合成數,而且滿足bn1 1 (mod n)。我們稱n為以b為底的擬質數(pseudoprime)。

  • 定義:一個合成數n,若對所有gcd(b, n) = 1的正整數b,都滿足同餘方程式bn1 1 (mod n)。則稱為卡邁克爾數(Carmichael number)。

    (用來紀念二十世紀早期研究這類整數的羅勃特.卡邁克爾 。)


Integers

  • 例:整數561是個卡邁克爾數。首先,注意到561是個合成數,561 = 31117。其次,我們發現若gcd(b, 561) = 1,則gcd(b, 3) = gcd(b, 11) = gcd(b, 17) = 1。

    利用費馬小定理,

    b2 1 (mod 3),b10 1 (mod 11)而且b16 1 (mod 17)。

    所以,

    b560 = (b2)280 1 (mod 3),

    b560 = (b10)56 1 (mod 11),

    b560 = (b16)35 1 (mod 17)。

    根據本節後的練習,對所有與561互質的正整數b而言,b560 1 (mod 561)。所以說,561是個卡邁克爾數。


Integers

公開金鑰密碼學

  • 在本節前面,我們介紹了以同餘方程式來加密信息的方法。將字源字串轉化成數字,再將這些數字依平移或是仿射轉換成另一些數字。這些方法都是私密金鑰密碼系統(private key cryptosystem)。知道加密的金鑰能讓我們很快的找出解碼金鑰。

  • 用私密金鑰密碼系統時,祕密互通信息的雙方必須各自擁有金鑰。因為任何擁有金鑰的人都能用之以解碼。因此,祕密通信的兩人必須私下交換對方的加密金鑰。

  • 在1970年代中期,密碼學家引入了公開金鑰密碼系統(public key cryptosystem)。使用公開金鑰密碼系統時,知道信息是如何加密並沒有辦法幫助你解碼。在此系統下,每個人都知道加密的金鑰,但是解密金鑰則是個祕密。只有指定的接信人,方能得到解碼金鑰,並用以解碼。因為不經過一道極繁複的手續,無法得到解碼金鑰。


Integers

RSA:一種公開金鑰系統

  • RSA加密法:信息被轉換成一個整數數列。將這些數字組成群組形成較大的整數,每個都代表一個字母區塊。加密程序勢將代表原始信息(plaintext)的數字M,利用下面的函數,轉換成加密信息(ciphertext)C = Memodn。將加密信息以整數區快的方式,送給指定的收信者。

  • RSA解密法:如果知道在模(p1)(q1)下e的反元素,也就是解密金鑰d,則很快就能找出原始信息。


  • Login