Ralph-Johan Back Joakim von Wright Matematiikkaa logiikan avulla Lyhyt lukuteorian kurssi Turku Centre for Computer Science IMPEd Resource Centre TUCS Lecture Notes No 5, Oct 2008
Matematiikkaa logiikan avulla Lyhyt lukuteorian kurssi Ralph-Johan Back och Joakim von Wright Lokakuussa 2008, Turku, Suomi Copyright Ralph-Johan Back and Joackim von Wright All rights reserved TUCS Lecture Notes Nr 5 IMPEd Series
Esipuhe Luomme tässä lyhyen kurssin lukuteoriaan rakenteisten päättelyketjujen avulla. Kurssi on ajateltu pidettäväksi lukiotasolla ja oletetaan, että oppilailla on suoritettuna rakenteisten päättelykejujen avulla opetettu logiikan kurssi. Tarkoitus on osoittaa, miten rakenteisia päättelyketjuja voidaan soveltaa käytännön lukiomatematiikassa. Matematiikkaa logiikan avulla Tämä julkaisu on osa laajempaa sarjaa jossa esitellään rakenteisia päättelyketjuja ja niiden sovellutuksia matematiikan opetuksessa. Seuraavat julkaisut ovat toistaiseksi ilmestyneet tässä sarjassa: Rakenteiset päättelyketjut lukiomatematiikassa(back, Wright [13]) Lyhyt lukuteorian kurssi (Back, von Wright [11]) Pitkän matematiikan ylioppilaskoe, kevät 2003 (Back, von Wright[12]) Johdatus rakenteisiin päättelyketjuihin (Back [2]) Logiikka ja rakenteiset päättelyketjut (Back [3]) Rakenteiset päättelyketjut yleisenä todistusmuotona (Back [4]) Kiitossanat Työ rakenteisten päättelyketjujen kehittämiseksi ja kokeilut soveltaa menetelmää opetuksessa ovat tapahtuneet läheisessä yhteistyössä Learning and Reasoning laboratorion jäsenten kanssa, tutkimuslaboratorio joka on Åbo Akademin ja Turun Yliopiston yhteishanke. Erityisesti haluamme kiittää seuraavia henkilöitä monista antoisita ja mielenkiintoisista keskusteluista menetelmästä ja esityksestä menetelmän kehittämisestä (lista on aakkosjärjestyksessä): Johannes Eriksson, Tanja Kavander, Linda Mannila, Martin Nylund, Mia Peltomäki, Viorel Preoteasa, Tapio Salakoski, och Patrick Sibelius.Tutkimuksen on rahoittanut Suomen Akatemia, projektin Center of Excellence in Formal Methods in Programming puitteissa. 3
4
Sisältö 1 Johdanto 7 2 Standardimenetelmä 9 3 Jaollisuus ja alkutekijöihin jako 13 4 Diofantoksen yhtälöt 21 5 Kongruensseja ja moduloaritmetiikkaa 29 6 Salaus 39 5
Sisältö 6
1 Johdanto Rakenteiset päätteleketjut on uusi menetelmä kirjoittaa matemaattisia todistuksia ja johtoja, joka soveltuu hyvin lukiotasoisen matematiikan ymmärtämiseen. Menetelmä on alunperin meidän kehittämä ja se on kuvailtu muun muassa julkaisuissa[10, 1, 6, 8, 9]. Menetelmän yleiskatsastus annetaan tutoriaalissa [5] sekä logiikan kurssissa [14]. Rakenteiset päätteltketjut on jatkokehitelmä E.W. Dijktrasin lineaarisille päättelyketjuille (calculational style proofs) [16, 18, 17]. Olemme tutkineet rakenteisten päättelyketjujen käyttöä lukio-opetuksessa monissa tutkimusprojekteissa, joissa on ollut mukana tutkioita Åbo Akademista (Back, von Wright, Mannila), Turun Yliopistosta (Tapio Salakoski) ja Turun Kupittaan lukiosta (Mia Peltomäki) [15, 7]. Oletamme, että lukija tuntee rakenteiset päättelyketjut, esim. yllämainittujen tutoriaalin tai logikaankurssin pohjalta. Tämän raportin tarkoitus on osoittaa, miten rakenteiset päättelyketjut toimivat käytännössä lukiomatematiikassa. Raportti antaa esimerkin lukiotason matematiikan kurssista, joka perustuu rakenteisten päättelyketjujen käyttöön. Menetelmän havainnollistamiseksi olemme valinneet lukuteorian kurssin. Syy siihen, että valitsimme juuri lukuteorian on se, että äskettäin Suomessa esiteltiin pitkän matematiikan uusi vallinnainen kurssi nimeltä Logiikka ja lukuteoria. Me ja meidän kollegamme olemme luennoineet kurssin useaan otteeseen ja silloin olemme käyttäneet kurssikirjallisuutena tämän raportin alustavaa versiota [14]. Kokemukset kurssin luennoinista rakenteisten päättelyketjujen avulla ovat olleet erittäin hyviä. Tässä kuvaamallamme lukuteorian kurssilla keskustellaan jaollisuudesta ja alkutekijöihin jakamisesta, Diofantoksen yhtälöistä, moduloaritmetiikasta sekä salakielistä. Lukuteoria käsittelee kokonaislukujen ominaisuuksia. Tietyt osat lukuteoriasta rajoittuvat luonnollisiin lukuihin (eli ei-negatiivisiin kokonaislukuihin). Perinteisesti lukuteorialla on ollut erityisasema matematiikassa, osittain sillä perusteella, että sillä on maine hyvin vähistä käytännön sovelluksista, osittain siksi, että moni ratkaisematon tai äärimmäisen vaikea probleema lukuteoriassa on voitu muotoilla yksinkertaisesti. Paras esimerkki on varmaan Fermat n suuri lause: Yhtälöllä x n + y n = z n ei ole positiivisia kokonaislukuratkaisuja, kun n 2 7
1 Johdanto Tämän teoreeman todisti lopullisesti vuonna 1995 amerikkalainen matemaatikko Andrew Wiles, yli 350 vuotta sen jälkeen, kun Pierre Fermat väitti omistavansa elegantin todistuksen, jota hän ei kuitenkaan koskaan julkaissut. 1 Toinen esimerkki on Goldbachin oletus Jokainen parillinen kokonaisluku voidaan kirjoittaa kahden alkuluvun summana, jota edelleenkään ei ole todistettu oikeaksi eikä vääräksi. Kiinnostus lukuteoriaan on kasvanut viime vuosikymmeninä, koska se on osoittautunut sopivaksi salaukseen: menetelmät, joita käytetään viestien salaamiseksi (eli viestin koodaus salakielellä niin, että kukaan ulkopuolinen ei pysty purkamaan salausta) rakentuvat lukuteoreettisille tuloksille jaollisuudesta ja tekijöihin jaosta. 1 Fermat kirjasi muistiin omaan kopioonsa Diofantoksen kirjoituksesta Arithmetica seuraavan lauseen: Minulla on todella ihastuttava todistus tälle väitteelle, mutta se ei mahdu tähän marginaaliin. Fermat oli tunnettu siitä, että hän piti salassa todistuksiaan tai vain viittasi niihin. 8
2 Standardimenetelmä Ennenkuin paneudumme varsinaiseen lukuteoriaan, tarkastelemme erästä standardimenetelmää, jota voidaan käyttää kokonaislukujen ominaisuuksien todistamiseen. Päässälaskusääntö kertolaskulle Numeroon viisi päättyvät kaksinumeroiset kokonaisluvut voidaan helposti korottaa neliöön muistisäännön avulla jos ensimmäinen numero on m, laske m(m+1) ja lisää tulon perään luvut kaksi ja viisi. Jos sääntöä käytetään laskettaessa 35 2, niin saamme 3 4 = 12 ja 35 2 = 1225 Samalla tavalla 75 2 = 5625 koska 7 8 = 56. Sääntö antaa oikean vastauksen kumassakin tapauksessa. Osoittaaksemme, että menetelmä antaa aina oikean vastauksen, meidän täytyy ensin esittää osallisina olevien lukujen vaaditut ominaisuudet matemaattisesti (kaksinumeroiset luvut, jotka päättyvät numeroon viisi). Tällaiset luvut ovat muotoa 10m + 5 missä m on kokonaisluku väliltä 1 ja 9 eli 1 m 9. Lukuteorian tarkasteluissa on selviö, että käsitellään kokonaislukuja, joten ei tarvitse erikseen ilmoittaa, että m Z. 1 On tärkeää muotoilla myös säännön lopputulos matemaattisesti. Luku, jonka ensimmäiset numerot muodostuvat luvusta m(m+1) ja jonka viimeiset numerot ovat 2 ja 5 voidaan kirjoittaa muotoon 100m(m + 1) + 25 Tekijä 100 huolehtii siitä, että tulo m(m + 1) ei puutu kahteen viimeiseen numeroon (kymmenet ja ykköset) luvussa. Nyt voidaan sääntö helposti todistaa: 1 Joskus asiayhteydestä myös selviää kuuluuko muuttuja joukkoon N (luonnolliset luvut) vai joukkoon Z + (positiiviset kokonaisluvut) ilman, että siitä erikseen mainitaan. 9
2 Standardimenetelmä (10m + 5) 2 = {korotetaan neliöön} 100m 2 + 100m + 25 = {erotetaan 100m} 100m(m + 1) + 25 Huomaa, että oletusta 1 m 9 ei käytetty hyväksi todistuksessa. Se oli kuitenkin tärkeä osa itse probleeman muotoilua, koska se takaa, että käsitellään kaksinumeroisia lukuja. Edellä oleva sääntö on erityistapaus yleisestä säännöstä sellaisten kaksinumeroisten lukujen kertolaskulle, missä kymmenien kerroimet ovat samat ja ykkösten summa on kymmenen. Jos kymmenien kerroin on m, niin tuloksen kaksi viimeistä numeroa rakentuvat ykkösten tulosta ja niiden eteen tulee m(m + 1). Säännöllä saamme esimerkiksi 53 57 = 3021 koska 5 6 = 30 ja 3 7 = 21. Samalla tavalla saadaa 94 96 = 9024. Kokonaislukujen ominaisuuksien kuvaaminen matemaattisesti Edellä olleen esimerkin opetus on se, että kun onnistutaan muotoilemaan varsinaiset ominaisuudet matemaattisesti, voi itse todistus olla hyvin lyhyt ja yksinkertainen. Monet kokonaislukujen ominaisuudet, jotka tulevat esille lukuteoriassa, voidaan ilmaista samalla periaatteella. Joitakin esimerkkejä: luku on pariton jos ja vain jos se voidaan kirjoittaa muotoon 2k + 1, luku pättyy seitsemään jos ja vain jos se voidaan kirjoittaa muotoon 10m + 7, luku on jaollinen 5:llä, jos ja vain jos se voidaan kirjoittaa muotoon 5m, luku on kaksinumeroinen, jos ja vain jos se voidaan kirjoittaa muotoon 10a + b missä 1 a 9 ja 0 b 9. Tässä käytetään nimiä k, m, a ja b kokonaisluvuille, joista meillä ei ole mitään lisätietoa. Mitä tahansa nimiä saa tietenkin käyttää. Kvanttoreilla tämä voidaan esittää tarkasti. Väite kokonaisluku x päättyy seitsemään kirjoitetaan esim. näin ( m x = 10m + 7) 10
Tehtäviä 1. Käytä tekstin sääntöjä laskeaksesi päässä a) 55 2 b) 33 37 2. Käytä summan ja erotuksen tulon muistikaavaa päässälaskusääntönä kertolaskuissa 47 53 ja 32 28. 3. Muotoile seuraavat kokonaislukujen ominaisuudet matemaattisesti: a) x on parillinen luku. b) y on kolminumeroinen luku, joka päättyy yhdeksään. c) luvut a ja b ovat kaksinumeroisia ja sisältävät samat numerot mutta eri järjestyksessä. 4. Muotoile tekstissä esiintynyt yleisempi kertolaskusääntö ja todista se. 5. Osoita: kun kokonaisluku korotetaan neliöön, niin tuloksen viimeinen numero ei voi olla koskaan 2, 3, 7 tai 8. (Opastus: ajattele kokonaislukua muodossa 10a + b ja analysoi kaikki vaihtoehdot luvulle b.) 6. Osoita: jos viimeinen numero kokonaisluvussa n on kuutonen, niin myös viimeinen numero luvussa n 2 on kuutonen. 7. Mikä on viimeinen numero luvussa a) 2005 2005 (b) 2004 2004? 8. Osoita, että kahden peräkkäisen luvun (kuten 13 ja 14 tai 28 ja 29) tulon täytyy olla parillinen luku. (Opastus: tee todistus tapaukselle, missä ensimmäinen luku on parillinen ja toinen todistus tapaukselle, missä ensimmäinen luku on pariton). 11
2 Standardimenetelmä 12
3 Jaollisuus ja alkutekijöihin jako Jaollisuus Kirjoitustapa m n tarkoittaa, että luku n on jaollinen luvulla m eli jakolasku m : n menee tasan. Jaollisuus määritellään seuraavalla tavalla m n ( k k m = n) Luvussa Olemassaolokvanttori (10.2) näimme, kuinka jaollisuustodistus voidaan suorittaa. Jaollisuustodistus käsittelee usein muotoa p q olevia lauseita, missä p ja q ovat jaollisuusväitteitä eli lauseita, joissa on olemassaolokvanttori. Esimerkkinä osoitamme tai ilmaistuna sanallisesti: m x m 2 x 2 jos x on jaollinen luvulla m, niin silloin x 2 on jaollinen luvulla m 2. Jaollisuuden määritelmän mukaan meidän pitää siis osoittaa seuraavaa: ( k k m = x) ( k k m 2 = x 2 ) Olemassaolo-oletuksen säännön mukaan saamme antaa nimen (valitsemme h) todistajalle, joten saamme olettaa, että (O) hm = x Nyt meidän pitää osoittaa, että on olemassa sellainen luku k että x 2 = k m 2. Tämä voidaan tehdä yksinkertaisella päättelyketjulla lähtien oletuksesta (O): hm = x {korotetaan puolittain neliöön} (hm) 2 = x 2 {eksponenttisääntö} 13
3 Jaollisuus ja alkutekijöihin jako h 2 m 2 = x 2 {todistajasääntö, todistaja on h 2 } ( k k m 2 = x 2 ) ja jaollisuus on todistettu. Alkuluku Alkuluku on luonnollinen luku n 2, jolla ei ole muita positiivisia tekijötä kuin 1 ja n. Ensimmäiset alkuluvut ovat 2, 3, 5, 7, 11, 13, 17, 19. Huomaa, että 2 on ainoa parillinen alkuluku. Alkulukuja on ääretön määrä (katso tehtäviä luvun lopussa). Alkuluvut eivät seuraa mitään tarkasti määrättyä jaksotusta, mutta niitä näyttää olevan harvemmassa, mitä suuremmiksi tutkittavat luvut tulevat. Tästä huolimatta voidaan osoittaa, että on olemassa äärettömän monta alkulukukaksosta (n, n + 2), esim (11, 13) ja (71, 73). Erathosteneen seula on eräs menetelmä kaikkien alkulukujen löytämiseksi. Äärettömästä kokonaislukujen 2 luettelosta poistetaan ensin kaikki parilliset luvut paitsi 2, sitten kaikki luvut, jotka ovat jaollisia luvulla 3 (paitsi 3), sitten kaikki luvut, jotka ovat jaollisia luvulla 5 (paitsi 5) jne. Tehokas alkulukutesti, joka päättää onko luku n alkuluku vai ei, voidaan tehdä seuraavasti. Jos n ei ole jaollinen millään alkuluvulla 2, 3, 5... k, missä k on viimeinen alkuluku, joka täyttää ehdon k 2 < n, niin silloin n on alkuluku. Menetelmää sovelletaan lukuun 239 tällä tavalla. Jakolaskuilla näemme, että 239 ei ole jaollinen millään kuudesta ensimmäisestä alkuluvusta 2, 3, 5, 7, 11 ja 13. Seuraava alkuluku on 17 ja koska 17 2 > 239, niin tiedämme silloin, että 239 on alkuluku. Tekijöihin jako ja aritmetiikan peruslause Kokonaisluvun n tekijöihin jako tarkoittaa luvun jakamista tekijöiden (>1) tuloksi. Esimerkiksi 60 voidaan jakaa tekijöihin 60 = 6 10 ja 60 = 3 4 5, kun taas 111 voidaan jakaa tekijöihin 111 = 3 37. Alkuluku voidaan jakaa tekijöiden tuloksi vain yhdellä tavalla esim. 17 = 1 17. Jos kokonaisluku voidaan jakaa tekijöihin usealla eri tavalla, päädytään lopuksi samoihin tekijöihin, kun jatkamme tekijöihin jakoa, kunnes kaikki tekijät ovat alkulukuja. Tämä ilmaistaan aritmetiikan peruslauseessa: Jokainen luonnollinen luku n 2 voidaan jakaa alkutekijöihin yksikäsitteisellä tavalla. Alkutekijöihin jaossa kirjoitetaan tekijät nousevassa suuruusjärjestyksessä ja mieluiten potenssimuodossa, esim 504 = 2 2 2 3 3 7 = 2 3 3 2 7 14
Aritmetiikan peruslause on eräs lukuteorian kulmakiviä. Se voi vaikuttaa itsestään selvältä, mutta sitä ei ole helppo todistaa. Yhteiset tekijät Oletetaan, että k, m ja n ovat positiivisia kokonaislukuja. Jos k m ja k n niin k on lukujen m ja n yhteinen tekijä. Esimerkiksi luvuilla 24 ja 36 on yhteinen tekijä 6. Luku 1 on aina kahden luvun yhteinen tekijä. On aina olemassa kahden positiivisen kokonaisluvun m ja n suurin yhteinen tekijä ja se merkitään syt(m, n). Esimerkki: syt(24, 36) = 12 syt(9, 16) = 1 syt(8, 16) = 8 Jos syt(m, n) = 1, niin lukujen m ja n sanotaan olevan suhteellisia alkulukuja (tai keskenään jaottomat). Suurin yhteinen tekijä syt(m, n) saadaan siten, että lukujen m ja n alkutekijämuodoista poimitaan tuloon kaikki niiden yhteiset tekijät pienimmällä eksponentilla. Tämä tulee selkeämmäksi, jos kirjoitetaan nollaeksponentit näkyviin, esim 504 = 2 3 3 2 7 1 = 2 3 3 2 5 0 7 1 11 0 660 = 2 2 3 1 5 1 11 1 = 2 2 3 1 5 1 7 0 11 1 On siis voimassa syt(504, 660) = {tekijöihin jako} syt(2 3 3 2 7 1, 2 2 3 1 5 1 11 1 ) = {otetaan mukaan yhteiset tekijät pienimmällä eksponentilla} 2 2 3 1 = {lasketaan arvo} 12 Yhteiset jaettavat (monikerrat) Jos m k ja n k niin k on lukujen m ja n yhteinen jaettava (yhteinen monikerta). On aina olemassa pienin yhteinen jaettava (pienin yhteinen monikerta) luvuille m ja n, jota merkitään pyj(m, n). Esimerkiksi on voimassa pyj(4, 6) = 12 pyj(30, 18) = 90 15
3 Jaollisuus ja alkutekijöihin jako Pienin yhteinen jaettava on käyttökelpoinen murtolukujen yhteen- ja vähennyslaskussa: jos m ja n ovat niiden kahden murtoluvun nimittäjiä, jotka lasketaan yhteen tai vähennetään, niin molemmat pitää laventaa siten, että nimittäjäksi tulee pyj(m, n) ( pienin yhteinen nimittäjä ). Pienin yhteinen jaettava pyj(m, n) saadaan siten, että jaetaan lukujen m ja n alkutekijöihin ja otetaan tuloon mukaan kaikki tekijät korkeimman eksponentin kanssa. Esimerkiksi on voimassa: pyj(504, 660) = {jaetaan tekijöihin} pyj(2 3 3 2 7 1, 2 2 3 1 5 1 11 1 ) = {otetaan mukaan kaikki tekijät korkeimmalla eksponentilla} 2 3 3 2 5 1 7 1 11 1 = {lasketaan arvo} 27720 Voidaan osoittaa, että syt(m, n) pyj(m, n) = m n Siksi pyj voidaan laskea helposti, jos syt on jo laskettu (ja päinvastoin). Saamme siis 504 660 pyj(504, 660) = = 27720 12 koska syt(504, 660) = 12, mikä osoitettiin aikaisemmin. Euklideen algoritmi On tunnettu tosiasia, että suuren luvun jakaminen alkutekijöihin on äärimmäisen aikaa vievää erityisesti, jos luvulla on kaksi suurin piirtein yhtä suurta tekijää (modernit salausmenetelmät rakentuvat itse asiassa pitkälti tälle pohjalle). On kuitenkin olemassa tehokas menetelmä löytää syt(m, n), nimittäin Euklideen algoritmi, joka rakentuu jakoalgoritmin pohjalle: Ensin jaetaan suurempi luvuista m ja n pienemmällä ja jakojäännös kirjoitetaan muistiin. Sen jälkeen jaetaan pienempi luvuista tällä jakojäännöksellä ja uusi jakojäännös kirjoitetaan muistiin. Tällä tavalla jatketaan kunnes jako menee tasan. Silloin on viimeinen jakaja (eli viimeinen jakojäännös) syt(m, n). 16
Esimerkki osoittaa kuinka syt(504, 660) löydetään, järjestelmällisesti: 660 : 504 antaa osamääräksi 1 ja jäännökseksi 156 504 : 156 antaa osamääräksi 3 ja jäännökseksi 36 156 : 36 antaa osamääräksi 4 ja jäännökseksi 12 36 : 12 antaa osamääräksi 3 ja jäännökseksi 0 Viimeinen jakojäännös oli 12 ja on siis voimassa syt(504, 660) = 12. Se, että algoritmi antaa oikean vastauksen, voidaan perustella sillä, että kahden luvun yhteinen tekijä on myös lukujen jakojäännöksen tekijä. Esimerkiksi ensimmäinen vaihe merkitsee, että 660 = 1 504 + 156 ja silloin täytyy jokaisen yhteisen tekijän luvuissa 660 ja 504 olla myös luvun 156 tekijä. Sitäpaitsi jäännöksestä tulee joka kerta pienempi (mutta ei koskaan negatiivinen), joten ennemmin tai myöhemmin saavutetaan kohta, missä jäännöksestä tulee 0. Euklideen algoritmi voidaan kirjoittaa lineaarisena päättelyketjuna, missä luku askel askeleelta pienenee: syt(660, 504) = {luvun 660 jakaminen luvulla 504 antaa osamääräksi 1 ja jäännökseksi 156} syt(504, 156) = {luvun 504 jakaminen luvulla 156 antaa osamääräksi 3 ja jäännökseksi 36} syt(156, 36) = {luvun 156 jakaminen luvulla 36 antaa osamääräksi 4 ja jäännökseksi 12} syt(36, 12) = {luvun 36 jakaminen luvulla 12 antaa osamääräksi 3 ja jako menee tasan} 12 17
3 Jaollisuus ja alkutekijöihin jako Lineaarisia kombinaatioita Euklideen algoritmi antaa myös toisen mielenkiintoisen tuloksen: Jos olemme etsineet suurinta yhteistä tekijää luvuille m ja n, niin seuraamalla Euklideen algoritmia taaksepäin voimme löytää sellaiset luvut x ja y, että mx + ny = syt(m, n). Esimerkissä löydämme luvut x ja y siten, että 660x + 504y = 12 seuraavalla tavalla: 12 = {toiseksi viimeinen jako osoittaa, että 156 = 4 36+12, siis 12 = 156 4 36} 156 4 36 = {edellinen jako osoittaa, että 504 = 3 156 + 36, siis 36 = 504 3 156} 156 4 (504 3 156) = {sievennetään} 4 540 + 13 156 = {ensimmäinen jako osoittaa, että 660 = 1 504+156, siis 156 = 660 1 504} 4 540 + 13 (660 1 540) = {sievennetään} 13 660 17 540 ja olemme osoittaneet, että 13 660 17 504 = 12 eli etsityt luvut ovat x = 13 ja y = 17. Itse asiassa olemme löytäneet kokonaislukuratkaisun yhtälölle 660x + 504y = 12. Menetelmä toimii muotoa mx + ny = syt(m, n) olevan kokonaislukuyhtälön ratkaisun löytämisessä. Lauseketta mx + ny kutsutaan lukujen m ja n lineaariseksi kombinaatioksi. Tehtäviä 1. Ratkaise ovatko seuraavat luvut alkulukuja: (a) 1001 (b) 2 17 1. 2. Osoita, että suurinta alkulukua ei voi olla olemassa seuraavasti: jos p on kaikista alkuluvuista suurin, niin millainen on luku p! + 1 eli p (p 1)... 2 1 + 1? Perustelu osoittaa, että alkulukuja on äärettömän monta. 3. Osoita, että jos n on jaollinen luvulla 3, niin n 2 3n on jaollinen luvulla 9. 18
4. Osoita, että jos n on pariton luku, niin n 2 1 on jaollinen luvulla 8. 5. Osoita, että jos toinen luvuista x ja y on jaollinen luvulla m, niin myös tulo xy on jaollinen luvulla m. Vinkki: voidaan olettaa, että se on x, joka on jaollinen luvulla m (miksi?) 6. Perustele seuraava sääntö: jos p on alkuluku ja p mn, niin on voimassa p m tai p n. Osoita vastaesimerkillä, että säännön ei tarvitse olla voimassa silloin, kun p ei ole alkuluku. 7. Määritä syt(x, y), kun a) x = 42 ja y = 91 (b) x = 123 ja y = 234 Mitkä yhtälöt olet ratkaissut? 8. Ilmaise syt(x, y) lukujen x ja y lineaarikombinaationa, kun a) x = 42 ja y = 91 (b) x = 5432 ja y = 4321 Mitkä yhtälöt olet ratkaissut? 9. Miksi kahden positiivisen kokonaisluvun suurin yhteinen tekijä on aina olemassa? 10. Perustele miksi syt(m, n) = m jos m n. 11. Perustele, miksi sääntö syt(m, n) pyj(m, n) = m n on voimassa. Käytä sen jälkeen sääntöä luvun pyj(504, 660) laskemiseen, kun tiedät, että syt(504, 660) = 12. 19
3 Jaollisuus ja alkutekijöihin jako 20
4 Diofantoksen yhtälöt Diofantoksen yhtälöt Kokonaislukuyhtälöä (eli yhtälöä, jonka kaikki kertoimet ovat kokonaislukuja ja vain kokonaislukuratkaisuja etsitään) kutsutaan Diofantoksen yhtälöksi. 1 Tunnettu esimerkki on Pythagoraan yhtälö x 2 + y 2 = z 2 jolla on mm. ratkaisut (x, y, z) = (3, 4, 5) och (x, y, z) = (8, 15, 17). Kirjoitamme mielellämme ratkaisut tällä tavalla (tupleina), mutta ne voidaan yhtä hyvin kirjoittaa muotoon x = 3 y = 4 z = 5 tai x = 3 y = 4 z = 5 Tässä käsitellään enimmäkseen kahden tuntemattoman lineaarisia Diofantoksen yhtälöitä, eli yhtälöitä muotoa ax + by = c missä a, b ja c ovat kokonaislukuja. Esimerkkinä on yhtälö 2x + 3y = 10 johon on helppo löytää useita erilaisia ratkaisuja, esim. (x, y) = (5, 0) ja (x, y) = ( 1, 4). Graafisesti voidaan kahden tuntemattoman Diofantoksen yhtälö tulkita seuraavalla tavalla. Yhtälö vastaa tason käyrää ja etsimme sen kokonaislukupisteitä eli sellaisia käyrän pisteitä (x, y), missä sekä x että y ovat kokonaislukuja. Diofantoksen yhtälöillä on usein monta eri ratkaisua ja meidän on erotettava kaksi erilaista ongelmaa: 1. löytää yksi ratkaisu ja 1 Matemaatikko Diofantos eli Alexandriassa, oletettavasti 200-luvulla j.kr. Hän kokosi kolmentoista kirjan sarjan, Arithmetican, uusista ja vanhoista matemaattisista probleemoista. Vain kuusi kirjoista selvisi keskiajan läpi. 21
4 Diofantoksen yhtälöt 2. löytää kaikki ratkaisut Tarkastelemme tässä menetelmää ratkaisun löytämiseksi ensin lineaariselle yhtälölle ja sitten kaikkien muiden ratkaisujen johtamista tästä yhdestä ratkaisusta. Käytämme esimerkkinä yhtälöä 15x + 42y = 18 Ratkaisumenetelmä kahden tuntemattoman lineaarisille Diofantoksen yhtälöille Ensimmäisessä vaiheessa jaetaan pois kertoimien yhteiset tekijät. Esimerkkitapauksessa 3 on suurin yhteinen tekijä 2 luvuille15, 42 ja 18 ja saadaan 15x + 42y = 18 = {jaetaan puolittain luvulla 3} 5x + 14y = 6 Jos kertoimilla a ja b on vielä jokin lukua 1 suurempi yhteinen tekijä, niin silloin yhtälöllä ei ole ratkaisua, koska yhtälön vasemmalla puolella olisi silloin tekijä, jota ei ole oikealla puolella. Meidän tapauksessamme kertoimet 5 ja 14 ovat keskenään jaottomat, joten jatkamme. Aloitamme muuttamalla yhtälön oikean puolen ykköseksi ja ratkaisemme siis ensin yhtälön 5x + 14y = 1 Ensimmäisenä vaiheena löydetään syt(14, 5) Euklideen algoritmin avulla. Saamme syt(14, 5) = {luvun 14 jakaminen luvulla 5 antaa osamääräksi 2 ja jäännöksen 4} syt(5, 4) = {luvun 5 jakaminen luvulla 4 antaa osamääräksi 1 ja jäännöksen 1} syt(4, 1) = {luvun 4 jakaminen luvulla 1 antaa osamääräksi 4 ja jako menee tasan} 1 2 Jos kertoimet ovat suuria, voi olla hankalaa löytää suurin yhteinen tekijä, mutta se voidaan aina löytää laskemalla syt(syt(a, b), c). 22
Nyt käytetään tätä päättelyketjua luvun 1 esittämiseen lukujen 5 ja 14 lineaarikombinaationa. 1 = {toiseksi viimeinen vaihe osoittaa, että 5 = 1 4 + 1, joten 1 = 5 1 4} 5 1 4 = {ensimmäinen askel osoittaa, että 14 = 2 5 + 4, joten 4 = 14 2 5} 5 1 (14 2 5) = {sievennetään} 3 5 1 14 Tämä osoittaa, että 3 5 1 14 = 1 eli (x, y) = (3, 1) on ratkaisu yhtälölle 5x + 14y = 1 Nyt voimme kulkea taaksepäin alkuperäiseen yhtälöön seuraavasti: 3 5 1 14 = 1 {muokataan} 5 3 + 14 ( 1) = 1 {kerrotaan puolittain luvulla 6} 6 (5 3 + 14 ( 1)) = 6 {sievennetään vasen puoli} 5 18 + 14 ( 6) = 6 Huomaa, kuinka luvut 6 ja 3 kerrotaan eri tavalla vasemmalle puolelle. Päättelyketjun viimeinen rivi osoittaa, että (x, y) = (18, 6) on yhtälön 5x + 14y = 6 ratkaisu ja siis myös yhtälön 15x + 42y = 18 Tämä voidaan myös yksinkertaisesti tarkistaa laskemalla 15 18 + 42 ( 6) laskimella. 23
4 Diofantoksen yhtälöt Yleinen ratkaisu Yläpuolella oleva menetelmä osoitti, että (x, y) = (18, 6) on ratkaisu yhtälölle 15x + 42y = 18 Graafisesti tämä voidaan ilmaista siten, että suora 15x + 42y = 18 kulkee kokonaislukupisteen (18, 6) kautta xy-tasossa. Silloin suoran kulmakerroin on k = 15 42 = 5 14 joten tiedämme, että 14 askelta oikealle ja 5 askelta alaspäin (katso Kuviota 4.1) on suoralla myös kokonaislukupiste: (18 + 14, 6 5) = (32, 11) Voidaan lisäksi osoittaa, että koska 5 ja 14 ovat keskenään jaottomia, niin ei ole muita kokonaislukupisteitä välillä (18, 6) ja (32, 11). 15x+42y=18 (18, 6) 5 14 (32, 11) Kuva 4.1: Kokonaislukupisteet suoralla 15x + 42y = 18. Perustelua voidaan kehitellä edelleen: kaikki pisteet, joiden x-koordinaatti on 18 + 14k ja y-koordinaatti on 6 5k (missä k on kokonaisluku) tulevat olemaan suoralla 5x + 14y = 6. Yleinen ratkaisu on siis (x, y) = (18 + 14k, 6 5k), k Z Tämä voidaan ilmaista olemassaolokvanttorilla: alkuperäisen yhtälön kanssa ekvivalentti lause on ( k Z x = 18 + 14k y = 6 5k) Oletetaan nyt, että käsitellään yhtälöä ax+by = c. Kun yksi ratkaisu (x 0, y 0 ) yhtälölle on löydetty, on helppo tarkastaa, että (x, y) = (x 0 + b, y 0 a) on myös ratkaisu, koska a(x 0 + b) + b(y 0 a) 24
= {kerrotaan sulkeet} ax 0 + ab + by 0 ba = {sievennetään} ax 0 + by 0 = {oletus, että (x 0, y 0 ) oli ratkaisu} c Samalla tavalla osoitetaan, että myös (x, y) = (x 0 + kb, y 0 ka) on ratkaisu kaikilla kokonaisluvuilla k. Voidaan myös osoittaa (emme tee sitä tässä, mutta se voidaan tehdä seuraavassa luvussa kuvattavan moduloaritmetiikan sovelluksena), että kaikki ratkaisut voidaan kirjoittaa tähän muotoon. Siis (x, y) = (x 0 + kb, y 0 ka) yhtälön yleinen ratkaisu. Esimerkkiyhtälössä tämä tarkoittaa, että yleinen ratkaisu on (x, y) = (18 + 14k, 6 5k), k Z jonka jo näimme. Kaikkia ratkaisuja ei voida tarkistaa, koska niitä on äärettömän monta, mutta voimme esimerkiksi kokeilla ratkaisua esimerkiksi arvolla k = 2: silloin x = 10 ja y = 4 ja selvästi on voimassa, että15 ( 10)+42 4 = 18. Lopuksi teemme yhteenvedon menetelmästä ratkaisemalla kahden tuntemattoman lineaarisen Diofantoksen yhtälön: 1. Jaetaan pois yhteiset tekijät ja tuloksena on yhtälö ax + by = c. 2. Tarkistetaan tapaus, että yhtälöllä ei ole ratkaisua eli jos syt(a, b) > 1. 3. Ratkaisstaan yhtälö ax + by = 1 Euklideen algoritmin avulla, merkitään ratkaisua (x 0, y 0 ). 4. Kerrotaan ratkaisu luvulla c saadaksemme ratkaisun (cx 0, cy 0 ) alkuperäiselle yhtälölle. 5. Yleinen ratkaisu on (x, y) = (cx 0 + kb, cy 0 ka), kun k Z. 25
4 Diofantoksen yhtälöt Yleiset Diofantoksen yhtälöt Yleiset Diofantoksen yhtälöt voidaan usein ratkaista joko siten, että onnistutaan osoittamaan, että yhtälöllä ei ole ratkaisua tai siten, että ensin löydetään yksi ratkaisu ja siitä johdetaan uusia ratkaisuja. Tietyt perinteiset yhtälönratkaisumenetelmät voivat olla käyttökelpoisia (esim. tekijöihin jako), mutta lisäksi vaaditaan erilaisia jaollisuuteen perustuvia argumentteja. Tunnettu esimerkki on Pythagoraan yhtälö x 2 + y 2 = z 2 Ratkaisun löydyttyä esim. (x, y, z) = (3, 4, 5) voidaan helposti osoittaa, että (x, y, z) = (3k, 4k, 5k) on myös ratkaisu kaikilla kokonaisluvuilla k. Ratkaisun puuttumisen osoittamisessa on jaollisuusargumentti usein käyttökelpoinen. Esimerkiksi nähdään, että yhtälöllä 8x 12y = 10 ei voi olla yhtään kokonaislukuratkaisua, koska sen vasen puoli on jaollinen luvulla 4, mutta oikea puoli ei ole. Toisena esimerkkinä on yhtälö x 3 y 1 = xy 3 + x + y Tässä voidaan osoittaa, että jos yhtälön toinen puoli on parillinen luku, niin toinen puoli on pariton ja päinvastoin. Se vaatii neljä osatodistusta: yksi tapaukselle: sekä x että y ovat parillisia lukuja, yksi tapaukselle: x on parillinen ja y pariton jne. Koska pariton luku ei voi olla sama kuin parillinen luku, tarkoittaa tämä, että yhtälöllä ei voi olla kokonaislukuratkaisua. Tehtäviä 1. Ratkaise seuraavat Diofantoksen yhtälöt etsimällä ensin yksi ratkaisu (käyttämättä Euklideen algoritmia) ja sitten määritä yleinen ratkaisu: a) 3x + 4y = 1 (b) 5x 7y = 1 (c) 3x + 4y = 5 2. Millä seuraavista yhtälöistä ei ole kokonaislukuratkaisua: a) 3x + 6y = 12 (b) 12x + 6y = 3 (c) 92x 114y = 37 3. Ratkaise seuraavat Diofantoksen yhtälöt: a) 32x + 50y = 8 (b) 32x + 50y = 7 26
4. [YO00k15] Määritä Euklideen algoritmin avulla suurin yhteinen tekijä syt(34086, 14630) luvuille 34086 ja 14630. Esitä tämä lukujen lineaarikombinaationa eli määritä kokonaisluvut a ja b siten, että syt(34086, 14630) = 34086a + 14630b. 5. [YO00s15] Määritä kaikki ratkaisut Diofantoksen yhtälölle 10x + 4y = 36. 6. Osoita, että kaikilla kokonaislukuarvoilla m ja n (x, y, z) = (m 2 n 2, 2mn, m 2 + n 2 ) on ratkaisu Pythagoraan yhtälölle x 2 + y 2 = z 2. Millaisilla lukujen m ja n kombinaatioilla saadaan positiivisia ratkaisuja? Laske viisi erilaista ratkaisua. 7. Osoita, että (x, y, z) = (9, 12, 15) on ratkaisu Pythagoraan yhtälöön. Voidaanko tämä ratkaisu konstruoida edellisessä tehtävässä olevan menetelmän mukaan? 8. Osoita, että Diofantoksen yhtälöllä x 3 y 1 = xy 3 + x + y ei ole ratkaisuja analysoimalla, mitä tapahtuu, jos x ja y ovat parittomia ja parillisia kumpikin erikseen (neljä yhdistelmävaihtoehtoa). 9. Osoita, että jos x on kokonaisluku, niin jakojäännökseksi jakolaskusta x 2 jaettuna luvulla 3 tulee joko 0 tai 1, mutta ei koskaan 2. Käytä sitten tätä osoittaaksesi, että Diofantoksen yhtälöllä x 2 + 3y 2 = 6z 1 ei ole ratkaisuja. 10. Osoita, että (x, y) = (11, 2) on ratkaisu Diofantoksen yhtälölle x 3 (x y) 3 = 602 Määritä sen jälkeen toinen ratkaisu yhtälölle. 27
4 Diofantoksen yhtälöt 28
5 Kongruensseja ja moduloaritmetiikkaa Kun kokonaisluku jaetaan luvulla n, on jakojäännös yksi luvuista 0, 1,..., n 1. Nämä luvut voidaan ajatella järjestetyiksi ympyrään siten, että jos otetaan yksi askel eteenpäin luvusta n n 1, niin päädytään takaisin lukuun 0. Se osoittaa, että monta lukuteoreettista kysymystä voidaan parhaiten analysoida kongruensseilla ja moduloaritmetiikalla, joka käsittelee laskuoperaatioita tämänlaisilla päättymättömillä, rengasmaisilla lukujoukoilla. Kelloaritmetiikkaa Jos laskemme kokonaisia tunteja perinteisellä kellolla, voimme ajatella, että luku 12 vastaa lukua 0. Samalla tavalla tulee luku 13 vastaamaan lukua 1, jne. Kellonaika n missä n 12 voidaan helposti muuttaa kellonlyömäksi välillä 0 ja 11 muodostamalla jakojäännös, kun n jaetaan luvulla 12. Kysymykseen Mitä kello näyttää 43 tuntia sen jälkeen, kun se näyttää kahdeksan? voidaan vastata helposti. Muodostetaan ensin summa 8 + 43 = 51 ja jaetaan luvulla 12, mistä jäännökseksi tulee 3. Siis vastauksena on, että kello näyttää 3. Nimeämme kelloluvut Z 12 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} ja märittelemme uuden yhteenlaskuoperaation Z 12 siten, että m + n (missä + on uusi yhteenlaskuoperaatio) on jakojäännös, kun m + n jaetaan luvulla 12. Esimerkiksi silloin on voimassa 8 + 7 = 3 ja 3 5 = 10. Vähennys- ja kertolasku kelloluvuilla voidaan määritellä samalla tavalla. Esimerkiksi silloin on voimassa 2 5 = 9 ja 5 5 = 1. Joitakin omituisia asioita tässä kelloaritmetiikassa tapahtuu, kuten 5 + 6 = 5 6 ja yhtälöllä x 2 = x on enemmän kuin kaksi ratkaisua (katso tehtäviä). Jäännösluokat Ne kokonaisluvut, jotka vastaavat kellonaikaa 1, muodostavat joukon {..., 11, 1, 13,...}. Sellaista joukkoa kutsutaan jäännösluokaksi modulo 12 ja jokaista lukua joukossa kutsutaan jäännösluokan edustajaksi. Jäännösluokat nimetään 1 = {1 + 12k k Z} 29
5 Kongruensseja ja moduloaritmetiikkaa ja 0, 2, jne samalla tavalla. Kelloaritmetiikan sijaan puhumme nyt aritmetiikasta modulo 12 tai aritmetiikasta joukossa Z 12. Tässä aritmetiikassa voidaan yhteenlasku määritellä jäännösluokkien laskuoperaationa seuraavasti a + b = a + b Tämä tarkoittaa esimerkiksi, että 7 + 8 = 3, koska 7 + 8 = 15 ja 15 kuuluu samaan jäännösluokkaan kuin 3. 1 Vähennys- ja kertolasku joukossa Z 12 määritellään vastaavalla tavalla. Siten on voimassa esimerkiksi 7 9 = 10 ja 3 5 = 3. Jos yhteydestä käy selvästi ilmi, että käsitellään aritmetiikkaa modulo 12, voidaan yksinkertaisuuden vuoksi kirjoittaa 8 + 9 = 5 oikeamman muodon 8 + 9 = 5 sijaan. Aritmetiikka modulo k voidaan muodostaa kaikille positiivisille kokonaisluvuille. Kun k = 1, on aritmetiikka täysin triviaali (koska ainoa luku on 0), mutta jo kun k = 2, siitä tulee kiinnostava (katso tehtäviä). Moduloaritmetiikka Z 3 voidaan kuvata yhteen- ja ketolaskutaulukoiden avulla: + 0 1 2 0 0 1 2 1 1 1 0 2 2 0 1 0 1 2 0 0 0 0 1 0 1 2 2 0 2 1 Koska mennään ympyrässä (eli 3:sta tulee 0 ja 4:stä tulee 1), niin kertolaskusta 2 2 tulee 1. Tämä osoittaa, että moduloaritmetiikassa täytyy olla varovainen käsitteissä kuten parittomat ja parilliset luvut. Monet tavallisista aritmetiikan laskusäännöistä on voimassa myös moduloaritmetiikassa, esim kommutatiivisuus: a + b = b + a ja ab = ba, assosiatiivisuus: a + (b + c) = (a + b) + c ja a(bc) = (ab)c, distributiivisuus: a(b + c) = ab + ac, ykkösalkio: a + 0 = a och 1 a = a, sekä vastaluku: jokaista lukua x kohti on sellainen luku x siten, että x+x = 0. 1 Osoittaaksemme, että määritelmä on järkevä, pitäisi oikeastaan osoittaa, että yhteenlaskun tulos on sama riippumatta siitä, mitkä edustajat a ja b valitaan yhteenlaskettavista jäännösluokista. 30
Kaikki nämä ominaisuudet voidaan osoittaa lähtien kongruenssin määritelmästä, joka esitetään seuraavassa kappaleessa. Moduloaritmetiikka positiivisille kokonaisluvuille k > 1 näyttää aivan erilaiselta riippuen siitä, onko k on alkuluku vai ei. Eräs tärkeimmistä eroista on, että tulon nollasääntö xy = 0 x = 0 y = 0 on voimassa vain, jos k on alkuluku (jos esimerkiksi k = 6, niin tulee lukujen 2 ja 3 tuloksi tulee nolla). Kongruenssi Kaksi lukua m ja n, joilla on sama jakojäännös jaettaessa luvulla k sanotaan olevan kongruentteja modulo k. Tämä kirjoitetaan perinteisesti mutta me valitsemme kirjoitustavan m n (mod k) m k n jota on helpompi käsitellä päättelyketjuissa. Lause m k n merkitsee, että m ja n kuuluvat samaan jäännösluokkaan modulo k. Esimerkiksi on voimassa 39 12 15 koska 39 ja 15 molemmat antavat jakojäännöksen 3 jaettaessa luvulla 12. Kongruenssi modulo k voidaan määritellä matemaattisen tarkasti jaollisuuden avulla: m k n k (m n) Edellä oleva esimerkki on helppo tarkistaa: 39 15 = 24 ja 24 on jaollinen 12:lla. Kolme perusominaisuutta osoittavat, että kongruenssit ovat tietynlaisia yhtäsuuruuksia refleksiivisyys: a k a, symmetria: a k b b k a, ja transitiivisuus: a k b b k c a k c. Esimerkiksi refleksiivisyys on helppo todistaa: a k a {kongruenssin määritelmä} 31
5 Kongruensseja ja moduloaritmetiikkaa k (a a) {sievennetään} k 0 {kaikki luvut jakavat luvun 0} T Muita käyttökelpoisia sääntöjä on muun muassa 1. yhteenlaskusääntö: a k b a + m k b + m, 2. kertolaskusääntö: a k b ma k mb, 3. potenssiin korotus -sääntö: a k b a m k b m, 4. jakolaskusääntö: ma k mb a k b, jos syt(m, k) = 1. Sääntöjen avulla voidaan tehdä dramaattisia kongruenssisievennyksiä, kuten esim 3 200 8 1. Tämä seuraa siitä, että 3 200 = 3 2 100 = (3 2 ) 100 ja 3 200 = {eksponenttisääntö} (3 2 ) 100 8 {potenssisääntö, 3 2 = 9 8 1} 1 100 = {sievennetään} 1 Huomioi, kuinka kongruenssisymbolia käytetään päättelyketjussa. 32
Luvun viimeinen numero Kongruenssia modulo 10 voidaan käyttää luvun viimeisen numeron määrittämiseen. Koska 6 6 = 36 10 6 nähdään, että 6 n loppuu kuutoseen kaikilla kokonaisluvuilla n. Samalla tavalla päättyvät kaikki luvun 5 potenssit viitoseen, kun taas viimeinen numero luvun 3 potensseissa vuorottelee luvuissa 3, 9, 7, 1, 3, 9,... Esimerkkinä etsimme viimeistä numeroa luvusta 2 2005 : 2 2005 = {eksponenttisäännöt, 2005 = 4 501 + 1} (2 4 ) 501 2 1 10 {kongruenssisäännöt, 2 4 = 16 10 6} 6 501 2 10 {kongruenssisäännöt} 6 2 10 {sievennetään} 2 Toisessa vaiheessa nähdään, miksi kannatti ottaa eteen tekijäksi 2 4 : siitä saadaan luku 6, jota on helpompi käsitellä. Jakojäännössysteemi ja Fermat n pieni lause Yleensä sanomme, että lukujoukko {a 1, a 2, a 3,..., a n } muodostaa täydellisen jäännössysteemin modulo n, jos jokainen jäännösluokka modulo n esiintyy tarkalleen yhden kerran. Esimerkki täydellisestä jäännösluokasta modulo 4 on {1, 8, 2, 7}, koska jakojäännökset jaettaessa luvulla 4 ovat {1, 0, 2, 3}. Aritmeettinen lukujono {a, a + d, a + 2d,..., a + (n 1)d} muodostaa myös täydellisen jäännössysteemin modulo n, jos syt(n, d) = 1. Se todistetaan seuraavalla tavalla: jos luku ei muodosta täydellistä jäännössysteemiä, niin silloin pitäisi kahden luvun olla kongruentteja modulo n. Oletetaan, että nämä kaksi lukua ovat a + kd ja a + md, missä ensimmäinen on pienempi kuin toinen. Silloin on voimassa 33
5 Kongruensseja ja moduloaritmetiikkaa [a + kd < a + md a + (n 1)d, syt(n, d) = 1] a + kd n a + md {kongruenssin määritelmä} n (a + kd a md) {sievennetään} n (k m)d {oletus syt(n, d) = 1} n (k m) {oletuksien mukaan k < m < n} E eli ristiriita. Siis luvun täytyy muodostaa täydellinen jäännössysteemi modulo n. Valitaan esimerkiksi n = 5, a = 2 ja d = 3. Silloin saadaan luvut {2, 5, 8, 11, 14}, jotka muodostavat täydellisen jäännössysteemin modulo 5. Se voidaan helposti tarkistaa: jos laskemme näiden lukujen jakojäännökset jaettaessa luvulla 5, saadaan lukujoukko {2, 0, 3, 1, 4}, eli koko Z 5. Voidaan myös (yksinkertaisesti) osoittaa, että jos {a 1, a 2, a 3,..., a n } muodostaa täydellisen jäännössysteemin modulo n ja syt(n, b) = 1, niin myös {ba 1, ba 2, ba 3,..., ba n } muodostaa täydellisen jäännössysteemin modulo n. Nyt voimme muotoilla Fermat n pienen lauseen : Jos p on alkuluku ja n ei ole jaollinen luvulla p, niin silloin on voimassa n p 1 p 1 Todistuksessa käytetään hyväksi tietoja, että syt(n, p) = 1 ja luvut {0, n, 2n,..., (p 1)n} muodostavat täydellisen jäännössysteemin modulo n (todistaminen jätetään harjoitukseksi lukijalle, katso tehtäviä). Esimerkiksi voidaan laskea jakojäännös, kun 9 2005 jaetaan luvulla 13, valitsemalla Fermat n pienessä lauseessa p:ksi 13 ja n:ksi 9: 9 2005 = {eksponenttisäännöt, 2005 = 12 167 + 1} 34
(9 12 ) 167 9 1 13 {Fermat n pienen lauseen mukaan on voimassa 9 12 13 1, kongruenssisäännöt} (1 12 ) 167 9 = {sievennetään} 9 mikä osoittaa, että jaettaessa 9 2005 luvulla 13 tulee jakojäännökseksi 9. Tehtäviä 1. Laske kelloaritmetiikassa a) 5 9 (b) 3 5 (c) 7 5 + 9 2. Ratkaise seuraavat yhtälöt kelloaritmetiikassa (käytä tekijöihin jaon ja yritys-erehdys-menetelmän yhdistelmää): a) 5 + x = 0 (b) x 2 = 0 (c) x 2 = x 3. Osoita, että kelloaritmetiikassa on voimassa 6 4 = 0. Mille muille lukupareille (x, y) kelloaritmetiikassa on voimassa xy = 0, vaikka kumpikaan luvuista x ja y ei ole 0? 4. Edellinen tehtävä osoittaa, että tulon nollasääntö ei ole voimassa kelloaritmetiikassa. Perustele, miksi yhteenlaskun nollasääntö kaikesta huolimatta pätee eli jokaisella luvulla x yksikäsitteinen käänteisluku x siten, että x + x = 0. 5. Miksi jouluaatto osuu aina samalle viikonpäivälle kuin lokakuun ensimmäinen? 6. Laadi yhteenlasku-, vähennyslasku- ja kertolaskutaulukko aritmetiikalle modulo 2. 7. Jos 0 tulkitaan epätodeksi E ja 1 todeksi T, mitkä loogisia operaatioita edellisen tehtävän laskuoperaatiot silloin vastaavat? 8. Laadi yhteenlasku- ja kertolaskutaulukot joukoille Z 4 ja Z 5. 9. Ratkaise seuraavat yhtälöt joukoissa Z 4 ja Z 5 : a) 3 + x = 2 (b) 3x = 2 (c) 2x = 3 (d) x 2 = 0 35
5 Kongruensseja ja moduloaritmetiikkaa Käytä edellisen tehtävän taulukoita. 10. Mikä on pienin ei-negatiivinen kokonaisluku, joka toteuttaa ehdon a) 45 12 x (b) 23 7 x (c) x 5 1324 11. Mikä on käänteisluku joukossa Z 15 luvulle a) 14 (b) 5 (c) x? 12. Osoita, että jos k ei ole alkuluku, niin joukossa Z k on olemassa kaksi sellaista lukua m 0 ja n 0, että mn = 0. Käytä perustelua löytääksesi kaksi sellaista lukua joukoista Z 6 ja Z 8. 13. Kuinka monta sellaista lukuparia (m, n), missä m 0 ja n 0 ja mn = 0 on lukujoukossa Z 30? 14. Todista transitiivisuussääntö kongruesseille. 15. Todista kongruenssien a) yhteenlaskusääntö (b) kertolaskusääntö 16. Osoita kongruenssien potenssisääntö (induktiolla: osoita ensin, että sääntö on voimassa, kun n = 0 ja sitten, jos se on voimassa, kun n = m, niin se on voimassa myös, kun n = m + 1). 17. Osoita, että jos a k b ja c k d, niin on voimassa a) a + c k b + d (b) ac k bd. 18. Osoita, että jos n on kokonaisluku, niin silloin n 3 +2n on jaollinen luvulla 3. Vihje: ota huomioon kolme eri vaihtoehtoa. 19. Osoita, että kongruenssiyhtälöllä x 2 = 3 2 ei ole ratkaisua. 20. Osoita: jos{a 1, a 2, a 3,..., a n } muodostaa täydellisen jäännössysteemin modulo n ja syt(n, b) = 1, niin myös {ba 1, ba 2, ba 3,..., ba n } muodostaa täydellisen jäännössysteemin modulo n. 21. Määritä jakojäännös, kun a) 7 2006 jaetaan luvulla 13 (b) 13 2006 jaetaan luvulla 7. 22. Etsi sellaisia ratkaisuja (x, y, z), missä syt(x, y) = syt(y, z) = syt(x, z) = 1 Pythagoraan yhtälöön x 2 + y 2 = z 2 käyttäen seuraavia vaiheita: 36
a) Osoita, että luvun z täytyy olla pariton ja toisen luvuista x ja y pariton ja toisen parillinen. b) Oleta, että y on parillinen ja muokkaa yhtälö muotoon (2u) 2 = z 2 x 2. c) Osoita, että sekä luvun z x 2 että luvun z+x 2 täytyy olla neliöitä. d) Osoita, että ratkaisujen täytyy olla muotoa x = m 2 n 2, y = 2mn ja z = m 2 + n 2 (tai x ja y toisinpäin). e) Osoita, että kaikki sellaiset (x, y, z), jotka mainitaan kohdassa (d) todella ovat ratkaisuja. 23. Todista Fermat n pieni lause. 37
5 Kongruensseja ja moduloaritmetiikkaa 38
6 Salaus Kryptografia eli viestin muuttaminen salakieliseksi tarkoittaa, että viesti muutetaan muotoon, joka kätkee varsinaisen sisällön ulkopuolisilta, mutta vastaanottaja voi saada esille alkuperäisen sisällön. Klassisia salausjärjestelmiä Matemaattisesti voidaan salaus kuvata siten, että viesti x annetaan argumenttina salausfunktiolle f ja sitten vastaanottaja purkaa salatun viestin f(x) avaimella, joka on funktion f käänteisfunktio f 1. Silloin saadaan alkuperäinen viesti, koska f 1 (f(x)) = x (tämä kuvataan Kuviossa 6.1). f x y f 1 Kuva 6.1: Viestin salaus ja salauksen purkaminen. Klassinen salaus tehtiin merkki merkiltä. On olemassa monta erilaista erityiskeinoa kätkeä viestin todellinen sisältö (näkymätön muste, ylimääräiset kirjaimet jne.). Caesarin menetelmä oli yhdistää jokainen merkki lukuun ja käyttää salausfunktiona y = (x + k) mod m missä m on erilaisten merkkien lukumäärä ja lisäys siis tapahtuu modulo m. Tässä mod on laskutoimitus, missä x mod y tarkoittaa jakojäännöstä, kun x jaetaan y:llä (esimerkiksi on voimassa 8 mod 3 = 2 ja 28 mod 7 = 0). Jäännösoperaatio voidaan määritellä matemaattisen tarkasti seuraavasti: m mod k = n m k n 0 n < k Jos suomen kielen aakkoston 29 kirjainta koodataan A = 1, B = 2,..., P = 16,..., Ö = 29 39
6 Salaus ja k = 5, niin tulee sanasta APUA salattuna FUZF, koska koodi (1, 16, 21, 1) muutetaan muotoon (6, 21, 26, 6). Purkaakseen tuollaisen Caesar-salauksen tarvitsee vastaanottajan vain tuntea m ja k. Salauksen purkaminen tapahtuu funktiolla x = (y k) mod m. Arvolla k = 5 puretaan FUZF sanaksi APUA, koska koodi (6, 21, 26, 6) muutetaan takaisin muotoon (1, 16, 21, 1). Varma salakirjoitus salaisella avaimella Järjestelmät, missä salaus tehdään merkki merkiltä muuttumattomalla avaimella, ovat epävarmoja, koska voidaan analysoida, mitkä merkit esiintyvät usein salatussa viestissä ja verrata tilastollisesti kirjaimien frekvenssejä todelliseen kieleen. Eräs tapa parantaa turvallisuutta on avaimen järjestelmällinen muuttuminen merkki merkiltä. Esimerkiksi voidaan ajatella, että Caesar-salaus saa kolmannen parametrin d, joka määrää siirron oikealle jokaiselle merkille: y(n) = (x(n) + k + nd) mod m missä n määrää merkin numeron. Jos k = 1 ja d = 3, niin tulee sanasta APUA salakirjoitettuna BTÄK. Toinen tapa on ensin koodata viesti luvun muotoon ja sitten tehdä jokin (myös käänteisesti toimiva) matemaattinen muunnos luvulle. Voidaan esim. koodata A luvuksi 00, B luvuksi 01, jne. Silloin tulee sanasta koti luku 10141908. Seuraava askel voi olla jonkinlainen permutoiva operaatio, esim. otetaan vuorotellen numeroita lopusta ja alusta. Tulokseksi tulee silloin 81009114. Salauksen purkamisessa täytyy sitten vain suorittaa käänteinen toiminto salaukselle. Toinen mahdollisuus on muuttaa teksti samalla tavalla luvun muotoon ja sitten suorittaa aritmeettinen operaatio esim. f(s) = (7s + 3) mod 10 jokaiselle numerolle s. Tällä funktiolla on käänteisfunktio, koska jokainen numero esiintyy tarkalleen kerran joukossa f(0),..., f(9). Esimerkiksi salakirjoitetaan 6 luvuksi 5 ja 5 puretaan takaisin luvuksi 6. Yhteistä tämänlaisille salausmenetelmille on se, että niin kauan kuin avain säilyy salaisena (eikä se ole niin yksinkertainen kuin edellä olevassa esimerkissä), on hyvin aikaavievää murtaa salausta. Toisen maailmansodan aikana Saksan armeija käytti hyvin edistynyttä salaisten avaimien salakirjoituksen muotoa automatisoituna nk. Enigma-koneilla, jotka järjestelmällisesti muuttivat salausparametreja. Britit onnistuivat saamaan yhden näistä koneista ja pystyivät 40
valtavalla työpanoksella murtamaan koodin. Keskeinen rooli oli filosofi ja matemaatikko Alan Turingilla: hän konstruoi eräänlaisen tietokoneen, the Bombe, joka analysoi viestejä. Julkisen avaimen salakirjoitus 1970-luvulla alkoi vallankumous salakirjoituksessa tai salakirjoitustieteessä (osa-alue matematiikan ja tietotekniikan rajalla). Perusoivallus oli käyttää nk. yksisuuntaistia funktioita, joilla on käänteisfunktio (one-way functions). Yksisuuntainen funktio f on sellainen, että funktion arvo y = f(x) voidaan helposti laskea, mutta käänteisen arvon x = f 1 (y) laskeminen on käytännössä mahdotonta, vaikka funktio f tunnetaan. Usein käytetty salausmenetelmä on RSA, joka on nimetty sen luoneiden henkilöiden mukaan (Rivest, Shamir, Adleman). Menetelmä perustuu tiedolle, että on helppo kertoa kaksi suurta alkulukua, mutta on ärimmäisen aikaavievää jakaa tulo tekijöihin. Jos henkilö A (Alisa) haluaa lähettää viestin henkilölle B (Bob), hän valitsee kaksi suurta alkulukua p ja q ja kolmannen luvun e, jotka täyttävät ehdon syt(e, (p 1)(q 1)) = 1 Alisa muodostaa sitten tulon N = pq ja viestittää luvut N ja e kaikille kiinnostuneille - ne muodostavat julkisen avaimen (public key) hänen salausmenetelmäänsä. Salauksen purku -avaimen (henkilökohtainen avain) Alisa muodostaa keksimällä luvun d, joka toteuttaa ehdon de (p 1)(q 1) 1 ja se löytyy helposti Diofantoksen yhtälön avulla (katso tehtävä 7, ehto syt(e, (p 1)(q 1)) = 1 takaa, että sellainen luku d on olemassa). Koska kukaan muu kuin Alisa ei tunne lukuja p ja q, on luku d salainen. Nyt Bob salakirjoittaa viestinsä muokaamalla sen ensin lukuna M ja sitten laskemalla vastaavan koodin: C = M e mod N Kun Alisa purkaa koodin C, täytyy hänen vain laskea (katso tehtävää 9). M = C d mod N 41
6 Salaus Pieni salakirjoitusesimerkki RSA-menetelmää kuvataan esimerkillä, missä p ja q valitaan pieniksi. Alisa valitsee p = 11 ja q = 17. Silloin on N = 187 ja luvuksi e Alisa voi valita sopivasti 7, koska (p 1)(q 1) = 160 ja syt(7, 160) = 1. Luvun d pitää täyttää ehto 7d 160 1, mikä voidaan muuttaa Diofantoksen yhtälöksi 7d + 160x = 1 (katso tehtäviä), jolla on ratkaisu d = 23. Nyt Bob haluaa lähettää suukon (kirjain X, joka vastaa lukua 24, koska X on kahdeskymmenesneljäs kirjain aakkostossa) Alisalle. Hän laskee 24 7 mod 187. Tämä voidaan tosin tehdä suoraan, mutta salakirjoitusohjelma, joka toimii hyvin suurten lukujen kanssa, toimii käytännössä järjestelmällisesti seuraavalla tavalla: Koska 7 = 4 + 2 + 1 lasketaan ja lopuksi ensin 24 1 187 24, sitten 24 2 = 24 24 576 187 15, sitten 24 4 187 15 2 = 225 187 38 24 7 = 24 4 24 2 24 1 187 24 15 38 = 13680 187 29 Se merkitsee, että 24 7 mod 187 = 29 ja salakirjoitettu viesti on siis luku 29. Alisa saa viestin luvu 29 muodossa ja purkaa salauksen nyt laskemalla 29 23 (mod187). Koska 23 = 16 + 4 + 2 + 1 saadaan (kuten edellä) 29 1 187 29 29 2 187 93 29 4 187 93 2 187 47 29 8 187 47 2 187 152 29 16 187 152 2 187 103 ja hän saa esille viestin luvun muodossa: 29 23 = 29 16+4+2+1 187 29 93 47 103 187 24 ja luku 24 on tarkalleen kirjain X, jonka Bob lähetti! Tehtäviä 1. Suomen kielen aakkostossa on 29 kirjainta. Caesar-salauksen avainluvulla 13 tulee silloin koodatuksi näin 42
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Ä Ö N O P Q R S T U V W X Y Z Å Ä Ö A B C D E F G H I J K L M a) Salakirjoita viesti Kotka on laskeutunut. b) Pura salakirjoitettu viesti Zvål izzlbblå. 2. Tekstissä kuvataan Caesar-salakirjoitus, jossa kolmas parametri d määrää jokaisen merkin siirron oikealle : y(n) = (x(n) + k + nd) modm missä n ilmoittaa merkin numeron. Osoita, että jos k = 1 ja d = 3, niin tulee sanasta APUA salakirjoitettuna BTÄK. Kuinka viesti salakirjoitetaan? 3. Käytä permutoivaa salausmenetelmää (kuten tekstissä kuvattiin) salakirjoittaaksesi viestin kaikki hyvin (miten voidaan toimia välilyönnin kanssa tässä tapauksessa?). Pura sitten salaus ja kuvaile purkualgoritmi. 4. Käytä tekstissä kuvailtua menetelmää funktioon f(s) = (7s + 3) mod10 salakirjoittaaksesi ja sitten purkaaksesi viestin Selvän teki. 5. Osoita, että funktiolla f(s) = (9s + 2) mod10 on käänteisfunktio, kun s on numero (eli 0,1,...,9). Käänteisfunktio voidaan kuvata taulukolla (tee se!), mutta onnistutko kuvaamaan sen myös matemaattisesti? Miksi tämä funktio on sopimaton salakirjoitukseen? 6. Anna esimerkki funktiosta g(s) = (as + b) mod10, jolla on käänteisfunktio arvoilla s = 1,..., 9 (missä a ei ole 7 eikä 9). 7. Muokkaa seuraavat kongruenssiyhtälöt Diofantoksen yhtälöiksi käyttämällä kongruenssin määritelmää: a) x 38 1357 (b) 7x 120 1 8. Oleta, että Alisa valitsee p = 11 ja q = 13 ja e = 7. Määritä Alisan henkilökohtainen avain ratkaisemalla kongruenssiyhtälö 7x 120 1. 9. Erikoistapaus Eulerin lauseesta sanoo, että jos p ja q ovat alkulukuja ja r = (p 1)(q 1), niin on voimassa a 1+kr pq a 43
6 Salaus mille tahansa luvulle k. Käytä tätä osoittaaksesi, että RSA-salauksen purku todella palauttaa alkuperäisen viestin, eli osoita, että jos N = pq ja de (p 1)(q 1) 1 ja y N x e ja z N y d, niin on voimassa y = x. 10. Oleta, että Alisa valitsee p = 13 ja q = 19 RSA-salaukseensa a) Mikä on luku N hänen julkisessa avaimessaan? b) Valitse sopiva luku e Alisan julkiseen avaimeen ja c) määritä sitten luku d hänen henkilökohtaiseen avaimeensa. 11. Salakirjoita kirjain Ö edellisen tehtävän RSA-esimerkin mukaan ja pura sitten tulos (varmistukseksi). 44
Kirjallisuutta [1] R. J. Back, M. Sjöberg, and J. von Wright. Field tests of the structured derivations method. Tech. Rpt. 491, Turku Centre for Computer Science, November 2002. [2] Ralph-Johan Back. Matematiikkaa logiikan avulla: Johdatus rakenteisiin päättelyketjuihin. TUCS Lecture Notes 10, Abo Akademi, Dept of Information Technologies, October 2008. [3] Ralph-Johan Back. Matematiikkaa logiikan avulla: Logiikka ja rakenteiset päättelyketjut. TUCS Lecture Notes 11, Abo Akademi, Dept of Information Technologies, October 2008. [4] Ralph-Johan Back. Matematiikkaa logiikan avulla: Rakenteiset päättelyketjut yleisenä todistusmuotona. TUCS Lecture Notes 12, Abo Akademi, Dept of Information Technologies, October 2008. [5] Ralph-Johan Back. Matematik med litet logik: Introduktion till strukturerade härledningar. TUCS Lecture Notes 7, Abo Akademi, Dept of Information Technologies, October 2008. [6] Ralph-Johan Back, Jim Grundy, and Joakim von Wright. Structured calculation proof. Formal Aspects of Computing, 9:469 483, 1997. [7] Ralph-Johan Back, Mia Peltomäki, Tapio Salakoski, and Joakim von Wright. Structured derivations supporting high-school mathematics. In A. Laine, J. Lavonen, and V. Meisalo, editors, Proceedings of the 20th Annual Symposium of the Finnish Mathematics and Science Education Research Association, Research Report 253, pages 104 122, Helsinki, Finland, 2004. Department of Applied Sciences of Education, University of Helsinki. [8] Ralph-Johan Back and Joakim von Wright. Doing high school mathematics carefully. TUCS Technical Report 140, TUCS - Turku Centre for Computer Science, 1997. [9] Ralph-Johan Back and Joakim von Wright. Refinement Calculus: A Systematic Introduction. Springer-Verlag, 1998. Graduate Texts in Computer Science. 45