1 / 57

Integers

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) 。由本節開始,我們將闡述貫穿電腦科學中所用到之數論的基本概念。 除法與模算術等基本概念 質數與最大公因數的計算 介紹幾個與數論有關的演算法,並探究這些演算法的複雜度

Télécharger la présentation

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Integers §3.4 The Integers and Division §3.5 Representations of Integers §3.6 Integers and Algorithms §3.7 Application of Number Theory

  2. 整數與除法(§3.4) • 在數學中牽涉到整數及其性質的分支稱為數論(number theory)。由本節開始,我們將闡述貫穿電腦科學中所用到之數論的基本概念。 • 除法與模算術等基本概念 • 質數與最大公因數的計算 • 介紹幾個與數論有關的演算法,並探究這些演算法的複雜度 • 介紹數論的重要結果及其在電腦算術與密碼學上的應用

  3. 除法 • 定義: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.

  4. 例:判斷是否37與312是否成立。 • 解: • 例:令n與d為正整數。有多少個小於n的正整數能被d整除? • 解:

  5. 定理:令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。

  6. 定義:在除法定理的等式中,d稱為除數(divisor)、a稱為被除數(dividend)、q為商數(quotient),而r為餘數(remainder)。下面的符號用來表現商數與餘數:定義:在除法定理的等式中,d稱為除數(divisor)、a稱為被除數(dividend)、q為商數(quotient),而r為餘數(remainder)。下面的符號用來表現商數與餘數: q = adivd,r = amodd。 • 例:當101除以11時,商數與餘數各為何? • 解:

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

  8. 定義: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.

  9. 例: Is 17 congruent to 5 modulo 6? Is 24 congruent to 5 ? • 解:

  10. 定理: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. • 證明:

  11. 定理: 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)。 • 證明:

  12. 例:因為7  2 (mod 5)與11  1 (mod 5), 根據定理, 18 = 7 + 11  2 + 1 = 3 (mod 5)。 所以, 77 = 711  21 = 2 (mod 5)。

  13. 系理: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. • 證明:

  14. 同餘的應用 • 散置函數(hashing function) • 在保險公司的中央電腦內都會存有每位客戶的資料。必需如何安排每位客戶資料的記憶位址,才能很方便的被檢索出來?這個問題的解決辦法是,選擇一個合適的散置函數。資料使用鍵值(key)來識別。例如,客戶資料通常以社會安全號碼當成鍵值來做識別。 • 最經常被使用的散置函數為h(k) = kmodm,其中m為可使用之記憶位址個數。 • 散置函數必須很容易計算,檔案才能很快的找到。 • 散置函數應該要映成的,這樣所有記憶位址都有可能使用到。

  15. 密碼學 • 同餘最重要的應用之一就是密碼學(cryptology),一個關於祕密信息的研究。這種製造祕密信息的過程稱之為加密(encryption)。 • 密碼的使用,最早可追朔至凱撒大帝(Julius Caesar)。他將信息中每個字的字母向後移動三個,而最後面的三個字母則以最前三個字母來替代。

  16. 例:根據凱撒大帝的密碼製作方式,下面的信息“MEET YOU IN THE PARK”會被轉換成什麼? • 解:首先將每個字母改寫成數字如下: 利用f(p) = (p + 3) mod 26找出替換的數字, 最後,轉換成字母,信息如下:

  17. 質數 • 定義:一個大於1的正整數p稱為質數(prime),如果p只有1和p兩個正因數。一個大於1的正整數若不為質數,便稱為合成數(composite)。 • 注意:整數n為合成數若且惟若存在整數a, 1 < a < n,使得an。 • 例:整數7為質數,因為其正因數只有1與7。而9是個合成數,因為它能被3整除。

  18. 算術基本定理(The fundamental Theorem of Arithmetic) 每個大於1的正整數都能唯一表為一個質數,或是兩個或兩個以上之質數(依非遞減之方式排列)的乘積。 • 100 = 2222 = 2252 641 = 641 999 = 33337 = 3337

  19. 定理:若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。

  20. 例: 證明101為質數。 • 解:

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

  22. 近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。

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

  24. 有關質數之猜想與未定論問題 • 哥德巴赫猜想(Goldbach’s Conjecture) 1742年時,哥德巴赫寫了一封信給尤拉,猜測每一個大於5的奇數都能表示成三個質數的和。尤拉回信說,這個猜想其實等價於所有大於2的偶數,都能寫成兩個質數之和。現在,這個猜想被稱為哥德巴赫猜想。我們能檢驗幾個較小的偶數: 4 = 2 + 2,6 = 3 + 3,8 = 3 + 5,10 = 3 + 7, 12 = 5 + 7等等。利用現代電腦,哥德巴赫猜想能檢驗至非常大的數。至2006年初,這個猜想已經被檢驗至21017。

  25. 攣生質數猜想(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位數。

  26. 最大公因數與最小公倍數 • 定義:令a與b為兩個非零的整數。一個滿足da與db的最大的整數d稱為a與b的最大公因數(the greatest common divisor),記為gcd(a, b)。 • 例:何為24與36的最大公因數? • 解: • 例:何為17與22的最大公因數? • 解:

  27. 定義:稱整數a與b是互質的(relatively prime)若它們的最大公因數是1。 • 例:根據上面的範例可知整數17與22互質,因為gcd(17, 22) = 1。

  28. 定義:稱整數a1, a2, …, an是兩兩互質的(pairwise relatively prime),如果對任意1 i < jn,都有gcd(ai, aj) = 1。 • 例:判斷10、17和21是否兩兩互質;而10、19和24是否兩兩互質。 • 解:

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

  30. 定義:正整數a與b之最小公倍數(the least common multiple)為能同時被a與b整除之最小正整數,記為lcm(a, b)。 • 例:何為233572與2433的最小公倍數? • 解:根據公式 lcm(233572, 2433) =

  31. 整數表示法(§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)。

  32. 例:二進位表示法(1 0101 1111)2的十進位表示法為何? • 解:由於 (1 0101 1111)2 =

  33. 例:十六進位表示法(2AE0B)16的十進位表示法為何?例:十六進位表示法(2AE0B)16的十進位表示法為何? • 解:由於 (2AE0B)16 =

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

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

  36. 整數運算之演算法(§3.6) • 例:將a = (1110)2與b = (1011)2相加。 • 解:

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

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

  39. 例:利用乘法演算法將整數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)。

  40. 歐基里得演算法 • 引理:令a = bq + r,其中a, b, q與r皆為整數。則gcd(a, b) = gcd(b, r)。 • 歐基里德演算法(Euclidean algorithm;或稱為輾轉相除法) • 不斷地將想要求出最大公因數的兩個整數,利用除法將數字約化,直至其中一個變成零為止。

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

  42. 數論的應用(§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)。

  43. 線性同餘 • 定理: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下皆同餘。)

  44. 例: Find an inverse of 3 modulo 7. • 解:

  45. 例:線性同餘3x 4 (mod 7)的解為何? • 解:根據前例,我們知道3在模7下的反元素為2。

  46. 中國餘式定理 • 例:在第一世紀中,中國是學家孫子問到: 今有物,不知其數。三三數之,賸二;五五數之,賸三;七七數之,賸二。問:問幾何? 這個問題翻譯成數學模型如下:求解下列同餘方程式系統

  47. 中國餘式定理 另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下同餘。)

  48. 要證明此定理,不但要找出同餘方程式系統的解,而且指出在模數m下,解是唯一的。首先,我們將找出一個方法來建構出方程式系統的解。要證明此定理,不但要找出同餘方程式系統的解,而且指出在模數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為方程式系統的解。

  49. 例:首先,令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是為方程式系統最小的整數的解。

  50. 大數之電腦算術 • 假設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之餘數,表成數對的形式。 • 解:

More Related