811120P Diskreetit rakenteet 2016-2017 6. Alkeislukuteoria
6.1 Jaollisuus Käsitellään kokonaislukujen perusominaisuuksia: erityisesti jaollisuutta Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut IN + = {1,2,3,... } Kokonaisluvut Z = {...,-3,-2,-1,0,1,2,3,...} Jaollisuuden perusominaisuus: Olkoot a, b Z, a 0. Tällöin b voidaan esittää yksikäsitteisesti muodossa b = q a + r missä q Z ja r {0,1,2,, a -1} 811120P Diskreetit rakenteet, Alkeislukuteoria 2
6.1 Jaollisuus (2) Edellisessä diassa a on jakaja, b on jaettava ja r on jakojäännös. Merkitään r = b mod a ja q = b div a Esimerkki. Olkoon jaettava b=121 ja jakaja a=19. Silloin 121 = 6 19+7, joten 121 mod 19 = 7 ja 121 div 19 = 6 Jos b mod a = 0 (jakojäännös on siis 0), luku a jakaa luvun b, jolloin merkitään a b. Silloin q = b div a = b/a. Tällöin sanotaan myös että b on a:n monikerta ja että a on b:n tekijä Esimerkki. 143 = 11 13, joten 11 143 ja 143 mod 11 = 0 143 div 11 = 143/11 = 13 811120P Diskreetit rakenteet, Alkeislukuteoria 3
6.1 Jaollisuus (3) Olkoot a, b ja c kokonaislukuja, a 0. Seuraavat ominaisuudet ovat aina voimassa: a 0, 1 b ja a a Jos a b ja a c, niin a (b + c) sekä a (b - c) Jos a b ja b c, niin a c (transitiivisuus) Jos a b, niin (-a) b Jos a b ja b a, niin a = b tai a = b (jos tarkastellaan vain positiivisia kokonaislukuja, niin antisymmetria) Huom! Ylläolevista ominaisuuksista seuraa, että relaatio a b on osittainen järjestys positiivisten kokonaislukujen joukossa 811120P Diskreetit rakenteet, Alkeislukuteoria 4
6.2 Alkuluvut Kokonaisluku p>1 on alkuluku, jos sen ainoat tekijät ovat 1 ja p Pienimpiä alkulukuja: 2,3,5,7,11,13,17,19,23,29,31, Kokonaisluku k>1 on yhdistetty luku, jos se ei ole alkuluku Alkulukujen merkitys: Jokainen ykköstä suurempi luonnollinen luku voidaan esittää alkulukujen tulona Luvun alkulukuesitys Aritmetiikan peruslause takaa, että järjestystä lukuunottamatta alkulukuesitys on yksikäsitteinen 811120P Diskreetit rakenteet, Alkeislukuteoria 5
6.2 Alkuluvut (2) Aritmetiikan peruslauseesta seuraa, että jokainen ykköstä suurempi kokonaisluku k voidaan esittää yksikäsitteisesti muodossa k = p 1 a1 p 2 a2 p r ar, missä p 1 < p 2 < < p r ovat alkulukuja Esimerkki. 270504 = 8 9 13 289 = 2 3 3 2 13 1 17 2 811120P Diskreetit rakenteet, Alkeislukuteoria 6
6.3 Eukleideen algoritmi Lukujen suurimman yhteisen tekijän etsiminen usein tarpeen kokonaislukulaskennassa Olkoot a ja b kokonaislukuja joista ainakin toinen ei ole nolla. Lukujen a ja b suurin yhteinen tekijä, syt(a,b) on suurin positiivinen kokonaisluku, joka on sekä a:n että b:n tekijä Esimerkki. a=90 ja b=78. Silloin syt(a,b) = 6 Lukujen syt voidaan hakea jakamalla luvut alkutekijöihinsä, mutta tämä on hidasta, koska nopeaa tekijöihinjakoalgoritmia ei tunneta Eukleideen algoritmi on nopea tapa löytää syt 811120P Diskreetit rakenteet, Alkeislukuteoria 7
6.3 Eukleideen algoritmi (2) Eukleideen algoritmi perustuu seuraavaan tosiasiaan: Jos a,b ja k ovat kokonaislukuja, niin lukujen a ja b yhteisten tekijöiden joukko on sama kuin lukujen b ja a-k b yhteisten tekijöiden joukko Em. seuraa, että syt(a,b) = syt(b,a-k b) -> tutkittavaa lukuparia voidaan pienentää, kunnes päästään triviaaliin tapaukseen Esim. Käytetään arvoa k=1: syt(30,18) = syt(18,30-18) = syt(18,12) = syt(12,18-12) = syt(12,6) = syt(6,6) = syt(6,0) = 6 811120P Diskreetit rakenteet, Alkeislukuteoria 8
6.3 Eukleideen algoritmi (3) x P(x) x P(x) Algoritmia voi tehostaa käyttämällä jaollisuuden perusominaisuutta: Olkoot a,b IN + ja a b > 0. Jos b a, niin syt(a,b) = b. Olet., että (b a) Jakoalgoritmi yksikäs. q 0 q 1,..., q k+1, r 0, r 1,..., r k IN +, joille (1) a = q 0 b + r 0 0 < r 0 < b (2) b = q 1 r 0 + r 1 0 < r 1 < r 0 (3) r 0 = q 2 r 1 + r 2 0 < r 2 < r 1... (k+1) r k-2 = q k r k-1 + r k 0 < r k < r k-1 (k+2) r k-1 = q k+1 r k Tällöin syt(a,b) = r k 811120P Diskreetit rakenteet, Alkeislukuteoria 9
6.3 Eukleideen algoritmi. Versio I Alkuperäinen versio, k=1 Syöte: Luonnolliset luvut a ja b Tulostus: Palauttaa syt(a,b):n EUKLEIDES_I(a,b) 1. while (b!=0) do 2. if (a < b) then 3. vaihda a ja b 4. temp = a-b 5. a = b 6. b = temp 7. return a 811120P Diskreetit rakenteet, Alkeislukuteoria 10
6.3 Eukleideen algoritmi. Versio II Syöte: Luonnolliset luvut a ja b Tulostus: Palauttaa syt(a,b):n EUKLEIDES_II(a,b) 1. while (b!=0) do 2. temp = b 3. b = a mod b 4. a = temp 5. return a Tehtävä 1. Kirjoita Eukleideen algoritmista rekursiivinen versio Tehtävä 2. Laske Eukleideen algoritmilla syt(264,90). Vastaus: 6 811120P Diskreetit rakenteet, Alkeislukuteoria 11
6.4 Pienin yhteinen jaettava Positiivisten kokonaislukujen a ja b pienin yhteinen jaettava pyj(a,b) on pienin positiivinen kokonaisluku, jolla on tekijänä sekä a että b Esim. pyj(60,33) = 660 Saadaan helposti syt:n avulla: pyj(a,b) = a b/syt(a,b) Tarvitaan esimerkiksi murtolukujen yhteenlaskussa kun lavennetaan samannimisiksi 811120P Diskreetit rakenteet, Alkeislukuteoria 12
6.5 Yleistetty Eukleideen algoritmi Laskettaessa Eukeleideen algoritmilla lukujen a ja b sytiä kuten diassa 9, voidaan kääntää prosessi ja esittää syt muodossa syt(a,b) = -q k r k-1 + r k-2 = q k (-q k-1 r k-2 + r k-3 ) + r k-2 = (1- q k q k-1 )r k-2 + q k r k-3 jne Lopulta saadaan syt(a,b) = x a + y b, missä x,y Z Esimerkki. syt(90,78) = 6 ja 6 = -6 90 + 7 78 Tehtävä. Laske syt(69,55) ja esitä se muodossa x 69 + y 55 811120P Diskreetit rakenteet, Alkeislukuteoria 13
6.6 Yhtälön x a + y b = m kokonaislukuratkaisut Olkoot a ja b kokonaislukuja, ainakin toinen 0 Tarkastellaan joukkoa S = {a x +b y IN + x, y Z } Koska syt(a,b) a ja syt(a,b) b, niin syt(a,b) on jokaisen joukon S luvun tekijä Yleistetty Eukleideen algoritmi -> syt(a,b) S Siten syt(a,b) on joukon S pienin luku Olkoon vielä m Z. Yhtälöllä x a + y b = m on kokonaislukuratkaisu (x,y) jos ja vain jos syt(a,b) m Tällöin ratkaisuja ääretön määrä Tehtävä. Etsi ratkaisut yhtälöille 15x+21y=4 ja 15x+31y=4 811120P Diskreetit rakenteet, Alkeislukuteoria 14
6.7 Laskemisesta jäännösluokilla Olkoon m IN +. Jos a ja b kokonaislukuja, joille m (a-b) niin sanotaan, että a ja b ovat kongruentteja modulo m ja merkitään a b(mod m) Helposti huomataan, että kongruenssi modulo m on joukon Z ekvivalenssirelaatio Edelleen a b(mod m) jos ja vain jos a mod m = b mod m -> Luvun k ekvivalenssiluokka E m (k) = {m n + k n Z} Kaikki luokat k=0,1,,m-1 811120P Diskreetit rakenteet, Alkeislukuteoria 15
6.7 Laskemisesta jäännösluokilla (2) Seuraavat ominaisuudet takaavat, että jäännösluokilla voidaan laskea. Olkoot a, b, c, d Z ja m IN + Jos a b (mod m) ja c d (mod m), niin a + c b + d (mod m) Jos a b (mod m) ja c d (mod m), niin a c b d (mod m) Jos a b (mod m) ja c d (mod m), niin a c b d (mod m) Lisäksi pätee: Jos a c b c (mod m) niin a b (mod [m / syt(m,c)] ) 811120P Diskreetit rakenteet, Alkeislukuteoria 16
6.7 Laskemisesta jäännösluokilla (3) x P(x) x P(x) Esimerkki. Yhteenlasku modulo 10: + 10 0 1 2 3 4 5 6 7 8 9 0 0 1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 0 2 2 3 4 5 6 7 8 9 0 1 3 3 4 5 6 7 8 9 0 1 2 4 4 5 6 7 8 9 0 1 2 3 5 5 6 7 8 9 0 1 2 3 4 6 6 7 8 9 0 1 2 3 4 5 7 7 8 9 0 1 2 3 4 5 6 8 8 9 0 1 2 3 4 5 6 7 9 9 0 1 2 3 4 5 6 7 8 811120P Diskreetit rakenteet, Alkeislukuteoria 17
6.7 Laskemisesta jäännösluokilla (4) x P(x) x P(x) Esimerkki. Kertolasku modulo 10 10 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 7 8 9 2 0 2 4 6 8 0 2 4 6 8 3 0 3 6 9 2 5 8 1 4 7 4 0 4 8 2 6 0 4 8 2 6 5 0 5 0 5 0 5 0 5 0 5 6 0 6 2 8 4 0 6 8 2 4 7 0 7 4 1 8 5 2 9 6 3 8 0 8 6 4 2 0 8 6 4 2 9 0 9 8 7 6 5 4 3 2 1 811120P Diskreetit rakenteet, Alkeislukuteoria 18
6.8 Kongruenssiyhtälöiden ratkaisuista x P(x) x P(x) Tarkastellaan kongruenssiyhtälöä a x b(mod m) missä a ja b kokonaislukuja, m positiivinen kokonaisluku Yhtälöllä on ratkaisu, jos ja vain jos b = a x + m y jollakin kokonaisluvulla y. Siten ratkaisu jos ja vain jos syt(a,m) on luvun b tekijä Tällöin ratkaisu saadaan soveltamalla yleistettyä Eukleideen algoritmia Tehtävä. Onko seuraavilla kongruenssiyhtälöillä ratkaisua? Jos on, niin etsi yksi ratkaisu 1. 602 x 15 (mod 91) 2. 190 x 1 (mod 21) 811120P Diskreetit rakenteet, Alkeislukuteoria 19