25  Kerto­lasku kongruensseissa

Tekijä

Olli Järviniemi

25.1 Johdanto

Yhteen­lasku kongruensseissa on hyvinkin selvä. Aloittamalla nollasta ja lisäämällä koko ajan ykköstä saadaan käytyä läpi kaikki luvut. Luvut muodostavat selkeän ringin tai syklin.

Luvut nollasta yhteentoista aseteltuina ympyrän kehälle myötäpäivään niin, että nolla on ylimpänä. Jokaisesta luvusta lähtee seuraavaan lukuun nuoli, joka on merkitty plus yhdellä, ja nuolet kiertävät koko ringin ympäri yhdestätoista takaisin nollaan.
Kuva 25.1: Yhteen­lasku modulo 1212 on hyvin selkeää.

Kerto­laskusta sen sijaan nähtiin aiemmassa tekstissä seuraava kuva.

Vaakarivissä ympyröidyt luvut nollasta kuuteen. Kustakin luvusta lähtee nuoli sen kaksinkertaiseen arvoon modulo 7. Luvusta 0 nuoli osoittaa takaisin itseensä, ja käyrät nuolet kulkevat sekaisin ristiin. Luvut 1, 2 ja 4 muodostavat renkaan reittiä 1, 2, 4 ja takaisin, ja luvut 3, 6 ja 5 toisen renkaan reittiä 3, 6, 5 ja takaisin.
Kuva 25.2: Luvusta x(mod7)x \pmod{7} on piirretty nuoli lukuun 2x(mod7)2x \pmod{7}.

Kerto­lasku tuntuu siis äkkiseltään paljon moni­mutkaisemmalta. Tämän tekstin on tarkoitus näyttää, että tilanne on kuitenkin yksin­kertaisempi kuin miltä aluksi näyttää.

25.2 Jako­lasku kongruensseissa

Aloitetaan huomautuksella jako­laskusta kongruensseissa. Oletetaan, että pp on alku­luku. Tutkitaan ehtoa muotoa axay(modp),ax \equiv ay \pmod{p}, missä aa on kokonais­luku, joka ei ole 0(modp)0 \pmod{p}. Nyt siis axay0(modp)ax - ay \equiv 0 \pmod{p}, eli paxay=a(xy).p \mid ax - ay = a(x-y). Koska luvun aa alku­tekijä­hajotelmassa ei ole lukua pp, tulee olla pxyp \mid x-y. Täten xy(modp).x \equiv y \pmod{p}. Voimme siis jakaa kongruenssi­yhtälöstä modulo pp puolittain luvun, joka ei ole nolla.

Jako­lasku kongruensseissa voi tuntua hieman pelottavalta sen takia, ettei kahden kokonais­luvun jako­lasku välttämättä anna kokonais­lukua. Huolellisuus on toki tarpeen (koska nollalla ei edelleenkään saa jakaa ja jako­lasku modulo epäalkuluvut vaatii vielä enemmän varovaisuutta), mutta silti: jako­lasku kongruensseissa onnistuu.

25.3 Fermat’n pieni lause

Ensimmäinen ja yksi tärkeimmistä tuloksista, jotka esitämme, kertoo kerto­laskun syklien pituuksista modulo alku­luku.

Lause 25.1 (Fermat’n pieni lause) Olkoon pp alku­luku ja olkoon aa kokonais­luku, joka ei ole 0(modp)0 \pmod{p}. Tällöin ap11(modp).a^{p-1} \equiv 1 \pmod{p}.

On selvää, että kertomalla lukua aa itsellään päästään jossain kohtaa sykliin. On myös melko selvää, että tähän sykliin päästään p1p-1 askeleen sisällä (koska nollasta eroavia lukuja modulo pp on p1p-1). On kuitenkin vähemmän selvää, miksi päädymme jossakin kohtaa ykköseen, ja vielä vähemmän selvää, miksi olemme ykkösessä tasan p1p-1 askeleen jälkeen. Esimerkiksi kuvassa 25.2 ykkösen sisältävässä syklissä on 33 lukua tutkittaessa moduloa p=7p = 7. Fermat’n pieni lause kertoo, ettei pituus voisi olla 44 tai 55, koska muuten p1=6p-1 = 6 askeleen jälkeen ei oltaisi ykkösessä.

Todistus.

Tutkitaan kuvan 25.2 tilannetta. Oleellinen huomio on: jokaiseen lukuun tulee täsmälleen yksi nuoli. Ei siis käy niin, että jotkin luvut saisivat enemmän nuolia kuin toiset ja jotkut jäisivät ilman.

Yleisesti käy sama juttu: jos otetaan luvut 1,2,,p11, 2, \ldots , p-1 modulo pp, ja kerrotaan ne luvulla aa, niin saadaan uudestaan luvut 1,2,,p11, 2, \ldots , p-1 modulo pp (mahdollisesti eri järjestyksessä kuin aiemmin), kunhan aa ei ole 0(modp)0 \pmod{p}. Tässä on vielä toisella tavalla havainnollistettu esimerkki­tapaus, jossa a=3a = 3 ja p=11p = 11.

Kaksi pystyriviä lukuja. Vasemmassa rivissä ovat ylhäältä alas luvut 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ja oikeassa rivissä luvut 3, 6, 9, 1, 4, 7, 10, 2, 5, 8. Vaakasuora nuoli yhdistää kunkin vasemman luvun oikealla olevaan kolminkertaiseensa modulo 11, ja oikea rivi sisältää samat luvut yhdestä kymmeneen eri järjestyksessä.
Kuva 25.3: Kertomalla luvut 1,2,,10(mod11)1, 2, \ldots , 10 \pmod{11} kolmella saadaan jokainen luku uudelleen täsmälleen kerran.

Tässä on todistus väitteelle. Todetaan ensin, että jos xx ei ole 00 modulo pp, niin myöskään axax ei ole: jos kahden luvun aa ja xx alku­tekijä­hajotelmassa ei ole lukua pp, niin myöskään niiden tulossa ei ole. Kuvan 25.3 tapauksessa tämä sanoo, ettei mikään syntyvistä oikean puolen luvuista ole 00.

Lisäksi mitkään kaksi syntyvistä luvuista eivät ole samoja. Jos nimittäin axay(modp)ax \equiv ay \pmod{p}, niin jakamalla puolittain luvulla aa saadaan xy(modp)x \equiv y \pmod{p}.

Väite seuraa näistä: luvut a,2a,3a,,(p1)aa, 2a, 3a, \ldots , (p-1)a ovat erisuuria ja nollasta eroavia modulo pp, joten ne ovat 1,2,,p11, 2, \ldots , p-1 jossain järjestyksessä.

Todistetaan sitten itse Fermat’n pieni lause. Idea: Koska luvut a,2a,,(p1)aa, 2a, \ldots , (p-1)a ovat samat kuin luvut 1,2,,p11, 2, \ldots , p-1, on näiden lukujen tulot myös samat (modulo pp). Siis a(2a)(3a)((p1)a)123(p1)(modp). a \cdot (2a) \cdot (3a) \cdot \ldots \cdot ((p-1)a) \equiv 1 \cdot 2 \cdot 3 \cdot \ldots \cdot (p-1) \pmod{p}. Vasemman puolen voi järjestellä uudestaan, jolloin saadaan yhtälö ap1123(p1)123(p1)(modp).a^{p-1} \cdot 1 \cdot 2 \cdot 3 \cdot \ldots \cdot (p-1) \equiv 1 \cdot 2 \cdot 3 \cdot \ldots \cdot (p-1) \pmod{p}. Nyt jakamalla yhtälö puolittain luvulla 123(p1)1 \cdot 2 \cdot 3 \cdot \ldots \cdot (p-1) saadaan ap11(modp).a^{p-1} \equiv 1 \pmod{p}.

25.4 Primitiivi­juuret

Pääsemme tekstin pääaiheeseen. Johdannossa käsiteltiin sitä, kuinka yhteen­lasku on yksin­kertaista (kuva 25.1) ja kerto­lasku kaoottista (kuva 25.2). Seuraava kuva on kuitenkin selkeämpi.

Kaksitoista nollasta eroavaa lukua modulo 13 ympyrän kehällä myötäpäivään järjestyksessä 1, 2, 4, 8, 3, 6, 12, 11, 9, 5, 10, 7, ykkönen ylimpänä. Jokaisesta luvusta lähtee kertaa kahdella -nuoli seuraavaan lukuun, joten kahdella kertominen kiertää koko ringin ympäri kerran. Luvut 1 ja 12 ovat rinkiä vastakkaisilla puolilla.
Kuva 25.4: Nollasta eroavat luvut modulo 1313 aseteltuina sopivasti rinkiin.

Aloittamalla luvusta 11 ja toistuvasti kertomalla nykyisen luvun kahdella saadaan käsiteltyä kaikki luvut modulo 1313 (nollaa lukuun ottamatta)!

Mitä tapahtuu? Kuvassa 25.2 tutkimme samaa tilannetta, mutta saimme paljon kaoottisemman kuvan. Ongelma oli, että valitsimme väärän kertoimen: modulo 77 kakkonen ei toimi, mutta kolmonen toimii, sillä kolmosen potenssit modulo 77 antavat kaikki (nollasta eroavat) luvut.

Kuusi nollasta eroavaa lukua modulo 7 ympyrän kehällä myötäpäivään järjestyksessä 1, 3, 2, 6, 4, 5, ykkönen ylimpänä. Jokaisesta luvusta lähtee kertaa kolmella -nuoli seuraavaan lukuun, joten kolmella kertominen kiertää koko ringin ympäri kerran.
Kuva 25.5: Nollasta eroavat luvut modulo 77 aseteltuina sopivasti rinkiin.

Sattuu käymään niin, että millä tahansa alku­luvulla pp on olemassa jokin luku, jolla on vastaava ominaisuus. Tällaista lukua kutsutaan primitiivi­juureksi modulo pp. (Väitteen todistus on vaikea, minkä vuoksi se esitetään erillisessä tekstissä.)

Lause 25.2 (Primitiivi­juuren olemassa­olo) Olkoon pp alku­luku. On olemassa sellainen luku g(modp)g \pmod{p}, että luvut g,g2,g3,,gp1(modp)g, g^2, g^3, \ldots , g^{p-1} \pmod{p} ovat luvut 1,2,3,,p1(modp)1, 2, 3, \ldots , p-1 \pmod{p} jossain järjestyksessä.

Tämä tulos tekee kerto­laskusta paljon vähemmän kaoottisen.

25.5 Esimerkkejä

Primitiivi­juurien olemassa­olo merkittävä tulos, joka mullistaa kongruenssien kerto­laskua koskevan ajatus­maailman. Tässä on muutama esimerkki, jotka demonstroivat uutta ajattelu­mallia.

25.5.1 Luku­esimerkkejä

Mitä on 8+7(mod12)8 + 7 \pmod{12}? Tietysti 3(mod12)3 \pmod{12}. Tämän voi havainnollistaa visuaalisesti kuvan 25.1 avulla seuraavasti: aloitetaan luvusta 88 ja otetaan 77 askelta eteenpäin. Päädymme lukuun 33.

Mitä on 911(mod13)9 \cdot 11 \pmod{13}? Helppo lasku antaa vastauksen 8(mod13)8 \pmod{13}. Tämän voi havainnollistaa kuvan 25.4 avulla seuraavasti: Jos ajatellaan, että 22 on ringin ensimmäinen luku, 44 toinen, 88 kolmas, 33 neljäs ja niin edelleen, niin 1111 on ringin seitsemäs luku. Kerto­lasku saadaan laskettua aloittamalla luvusta 99 ja ottamalla seitsemän askelta eteenpäin (missä seitsemän vastaa luvun 1111 järjestys­numeroa ringissä). Päädymme lukuun 88.

Tämä voi tuntua hieman hölmöltä, koska on nopeampaa vain laskea kerto­lasku kuin laskea askelia jostakin kuvasta. Ajatus on kuitenkin tärkein: kerto­laskun rakenne on samanlainen kuin yhteen­laskun.

25.5.2 Fermat’n pieni lause

Tutkitaan kuvan 25.1 tilannetta ja otetaan sieltä jokin luku, vaikka 55. Mitä saadaan, kun luku 55 summataan itseensä 1212 kertaa? Tämä tietysti vastaa viittä täyttä kierrosta. Päädymme siis lukuun 00.

Tutkitaan kuvan 25.4 tilannetta ja otetaan sieltä jokin luku, vaikka luku 66. Se on ringin viides luku (kun taas ajatellaan, että 22 on ringin ensimmäinen luku). Mitä saadaan, kun luku 66 kerrotaan itsellään 1212 kertaa? Tämä vastaa taas viittä täyttä kierrosta. Päädymme siis lukuun 11. Toisin sanoen 6121(mod13)6^{12} \equiv 1 \pmod{13}.

Tämä on erikois­tapaus Fermat’n pienestä lauseesta. Näimme osiossa 2 kovasti vaivaa lauseen todistamiseksi, mutta primitiivi­juurien kautta tulkittuna väite vain sanoo, että jos kierrämme ringin ympäri jonkin määrän täysiä kierroksia, niin päädymme aloitus­pisteeseen.

25.5.3 Neliön­jäännökset

Olemme aiemmin Diofantoksen yhtälöiden yhteydessä tehneet modulo­tarkasteluja ja olemme väli­vaiheena laskeneet, mitä arvoja x2x^2 saa modulo 44. (Vastaus: 00 ja 11.) Saman kysymyksen voi kysyä muillakin moduloilla. Modulo 1313 voidaan laskea, että x2x^2 saa arvot 0,1,3,4,9,10,120, 1, 3, 4, 9, 10, 12 modulo 1313. Näitä lukuja kutsutaan neliön­jäännöksiksi modulo 1313.1 Nollasta eroavia lukuja, jotka eivät ole neliön­jäännöksiä, kutsutaan neliön­epäjäännöksiksi.

1 Tarkalleen ottaen lukua 00 ei kutsuta neliön­jäännökseksi.

Neliön­jäännöksillä on paljon mielen­kiintoisia ominaisuuksia. Tutkitaan tässä muutamia.

Tehtävä 25.1 Olkoon pp alku­luku. Osoita, että jos aa ja bb ovat kaksi neliön­jäännöstä modulo pp, niin myös abab on neliön­jäännös modulo pp.

Ratkaisu: Koska aa on neliö, voidaan kirjoittaa ax2(modp)a \equiv x^2 \pmod{p}. Vastaavasti voidaan kirjoittaa by2(modp)b \equiv y^2 \pmod{p}. Nyt (xy)2x2y2ab(modp)(xy)^2 \equiv x^2y^2 \equiv ab \pmod{p}.

Tehtävä 25.2 Olkoon pp alku­luku. Osoita, että jos aa ja bb ovat kaksi neliön­epäjäännöstä modulo pp, niin abab on neliön­jäännös modulo pp.

Tämä tuntuu vaikeammalta. Tehtävä ei ratkeakaan suoraan algebrallisella manipulaatiolla kuten edellinen tehtävä.

Apuun tulee primitiivi­juuri. Jos katsotaan tarkkaan, niin edellä listatut neliöt 1,3,4,9,101, 3, 4, 9, 10 ja 1212 modulo 1313 ovat täsmälleen ne luvut, jotka kuvan 25.4 ringissä esiintyvät parillisissa kohdissa 0,2,4,6,8,100, 2, 4, 6, 8, 10.

Tämä toimii yleisestikin. Jos gg on primitiivi­juuri modulo pp, niin (määritelmällisesti) luvut modulo pp ovat g,g2,g3,,gp1g, g^2, g^3, \ldots , g^{p-1} jossain järjestyksessä. Näiden lukujen neliöt ovat g2,g4,g6,,g2(p1).g^2, g^4, g^6, \ldots , g^{2(p-1)}. Nämä luvut siis kiertävät kuvan 25.4 kaltaista rinkiä ympäri kahden askeleen hypyin (samaan tapaan kuin luvut 2x,x=0,1,,p12x, x = 0, 1, \ldots , p-1 kiertävät kuvan 25.1 kaltaista rinkiä ympäri kahden askeleen hypyin).

Eli tehtävän väite on käytännössä sama kuin ”kahden parittoman luvun summa on parillinen”. Tämä on selvä. (Edellisen tehtävän väite puolestaan vastaa sitä, että kahden parillisen luvun summa on parillinen.)

Esitetään vielä yksi tärkeä esimerkki.

Tehtävä 25.3 Olkoon pp pariton alku­luku. Osoita, että 1-1 on neliön­jäännös modulo pp jos ja vain jos p1(mod4)p \equiv 1 \pmod{4}.

Tehtävän ratkaisemiseksi käytetään taas primitiivi­juuria. Ensiksi mietitään, missä päin rinkiä luku 1-1 on. Luku 1-1 on sellainen, joka kerrottuna itsellään antaa luvun 11. Siis jos otetaan tietty määrä askelia ja päästään lukuun 1-1, ja otetaan uudestaan sama määrä askelia, päästään lukuun 11. Tämä tarkoittaa, että luku 1-1 on ringissä vastapäätä lukua 11. (Näin nähdään olevan kuvassa 25.4, jossa käytetään merkintää p1p-1 merkinnän 1-1 sijasta.) Se on siis (p1)/2(p-1)/2 askeleen päässä alusta.

Milloin on olemassa luku, jonka neliö on 1-1? Nähdään, että tällaisen luvun tulee olla ”kello kolmessa” tai ”kello yhdeksässä”: esimerkiksi kuvassa 25.4 luvut 88 ja 55 ovat ne, joiden neliö on 1212.

Tässä perustelu: Jos tämä luku on xx askeleen päässä aloitus­pisteestä, niin joko tulee olla 2x=(p1)/22x = (p-1)/2 tai 2x=(p1)/2+(p1)2x = (p-1)/2 + (p-1) (jolloin 2x2x vastaa puoltatoista kierrosta). Näistä yhtälöistä saadaan ratkaistua, että x=(p1)/4x = (p-1)/4 tai x=3(p1)/4x = 3(p-1)/4 (eli xx on joko kello kolmessa tai kello yhdeksässä). Nämä luvun xx arvot ovat kokonais­lukuja täsmälleen silloin, kun p1(mod4)p \equiv 1 \pmod{4}.

Huomataankin, että esimerkiksi kuvan 25.5 tilanteessa yksikään luku ei ole kello kolmessa tai kello yhdeksässä. Tämä johtuu siitä, että puolikkaan kierroksen pituus (p1)/2(p-1)/2 on pariton, eli siitä että p3(mod4)p \equiv 3 \pmod{4}.

25.6 Tehtäviä

Tehtävä 1.

  1. Etsi kullekin alku­luvuista 2,3,5,7,11,132, 3, 5, 7, 11, 13 ja 1717 vähintään yksi primitiivi­juuri.
  2. Etsi näitä alku­lukuja vastaavat neliön­jäännökset.

Tehtävä 2. Etsi kaikki primitiivi­juuret modulo 1313. Miten ne asettuvat kuvaan 25.4?

Tehtävä 3. Olkoon pp alku­luku. Oletetaan, että aa on neliön­jäännös modulo pp ja bb on neliön­epäjäännös. Osoita, että abab on neliön­epäjäännös modulo pp.

Tehtävä 4. Olkoon pp alku­luku. Tutkitaan lukuja x2(modp)x^2 \pmod{p}, missä xx käy läpi luvut 1,2,3,,p11, 2, 3, \ldots , p-1. Osoita, että tällä tavalla saatavia erisuuria lukuja on tasan (p1)/2(p-1)/2 kappaletta.

Tehtävä 5. Olkoon pp alku­luku. Tutkitaan lukuja x3(modp)x^3 \pmod{p}, missä xx käy läpi luvut 1,2,3,,p11, 2, 3, \ldots , p-1. Osoita, että

  • jos p2(mod3)p \equiv 2 \pmod{3}, niin tällä tavalla saatavia erisuuria lukuja on tasan p1p-1 kappaletta
  • jos p1(mod3)p \equiv 1 \pmod{3}, niin tällä tavalla saatavia erisuuria lukuja on tasan (p1)/3(p-1)/3 kappaletta.

Tehtävä 6. Luvun aa aste modulo pp on pienin positiivinen kokonais­luku nn, jolla an1(modp)a^n \equiv 1 \pmod{p}. Esimerkiksi luvun 22 aste modulo 77 on kolme, koska 212^1 ja 222^2 eivät ole 1(mod7)1 \pmod{7}, mutta 232^3 on. Laske lukujen 1,2,3,,121, 2, 3, \ldots , 12 asteet modulo 1313.

Tehtävä 7. Olkoon pp alku­luku ja xx luku, joka ei ole 0(modp)0 \pmod{p}.

  1. Olkoon mm luvun xx aste modulo pp. Osoita, että jos aa on positiivinen kokonais­luku, niin xa1(modp)x^a \equiv 1 \pmod{p} pätee täsmälleen silloin, kun aa on jaollinen luvulla mm.
  2. Oletetaan, että aa ja bb ovat positiivisia kokonais­lukuja, joilla xa1(modp)x^a \equiv 1 \pmod{p} ja xb1(modp)x^b \equiv 1 \pmod{p}. Olkoon dd lukujen aa ja bb suurin yhteinen tekijä. Osoita, että xd1(modp)x^d \equiv 1 \pmod{p}.
  3. Todista, että minkä tahansa luvun aste modulo pp jakaa luvun p1p-1.