Modulær aritmetikk

Fra Wikipedia, den frie encyklopedi
Hopp til navigering Hopp til søk
Tidsregning på denne klokken bruker modulær aritmetikk da 9 + 4 ≡ 1 (mod 12)}.

Modulær aritmetikk er basert på å telle 1,2,3 og så videre opp til et tall n hvor man starter med 1 igjen. Tallet n kalles modulus for denne tellemåten. Med denne endelige tallmengden kan man utføre de fire vanlige regneoperasjonene som dermed definerer en ny aritmetikk.

Ved bruk av en vanlig klokke utfører man ubevisst modulær addisjon og subtraksjon med modulus n = 12. Hvis klokken for eksempel viser 5, vil den vise 2 etter 9 timer. På tilsvarende vis ville den ha vist 8 hvis den hadde blitt avlest 9 timer tidligere. Med matematisk notasjon ville man uttrykke disse to fastsettelsene av tidspunktene som 5 + 9 ≡ 2 (mod 12) og 5 - 9 ≡ 8 (mod 12). Det betyr at regneoperasjonene gjøres «modulo» tolv, det vil si med modulus 12. Modulær aritmetikk blir derfor noen ganger omtalt som «klokkearitmetikk».

For å angi alle timene i et helt døgn ville man på samme vis bruke en modulus n = 24 for å skille mellom timer om natten og om dagen. Den samme, modulære aritmetikken benyttes også når man angir antall grader i en vinkel hvor n = 360° benyttes.

Det var Carl Friedrich Gauss som etablerte modulær aritmetikk som en viktig del av moderne matematikk i sitt store verk Disquisitiones Arithmeticae på begynnelsen av 1800-tallet. Her undersøkte han grunnlaget for konstruksjon av regulære mangekanter. Slike polygoner har samme geometri eller symmetri som en klokke. I vår tid benyttes modulær aritmetikk innen informatikk som en bestanddel av de viktigste programmeringsspråkene og spiller en sentral rolle i moderne kryptografi. Dessuten inngår den ved bestemmelsen av kontrollsiffer i personnummer samt sjekking av tallene som inngår i ISBN- og IBAN-systemene.

Heltallsdivisjon[rediger | rediger kilde]

Når man er gitt en viss modulus n, kan man for hvert annet heltall x dele dette med n ved bruk av heltallsdivisjon. Resultatet gir da vanligvis en rest r slik at resultatet kan skrives som

hvor heltallet a er kvotienten. Resten bestemmes slik at den oppfyller 0 ≤ r < n. Hvis for eksempel n = 6 og x = 17, så er 17 = 6⋅2 + 5 slik at resten r = 5. Når resten er null, sier man at divisjonen «går opp». Da er n en faktor av x.[1]

I modulær aritmetikk omtaler man resultatet av denne divisjonen som at 17 er 5 modulo 6. Det skrives som 17 mod 6 = 5. I det generelle tilfellet har man da at

Hvis dividenden x økes med et helt antall m av modulusen, vil ikke resten forandres. Derfor har man at

hvor heltallet m også kan være negativt. For eksempel er -13 mod 5 = (2 - 3⋅5) mod 5 = 2.

For å beregne summen x + y modulo n kan man benytte uttrykket

Det følger fra å skrive x = na + r og y = nb + s der r = x mod n og s = y mod n. Da blir (x + y) mod n = (r + s) mod n som gir formelen. Slik kan også beregningen av produktet xy mod n gjøres enklere når tallen x og y er spesielt store.[2]

Potenser[rediger | rediger kilde]

En potens av et tall kan bli veldig stor når eksponenten blir stor og vil da være krevende å regne ut. Men med modulær aritmetikk kan ikke resultatet bli større enn modulus og beregningen er enklere. Man kan da benytte at

som følger fra å skrive x = an + r  slik at x mod n = r. Ved bruk av binomialformelen for xm vil da kun leddet rm bidra da alle andre ledd inneholder n som faktor. Derfor blir også

Dette kan illustreres ved å regne ut for eksempel 59 mod 7. Man kan da benytte at 52 mod 7 = 25 mod 7 = 4 slik at

Nå er 59 = 51 + 4 + 4   slik at man har

På denne måten kan beregning av høye potenser betraktelig forenkles.[2]

Aritmetiske kongruenser[rediger | rediger kilde]

To heltall x og y som gir den samme resten r når de divideres med n, sier å være kongruente med hverandre modulo n. Det skrives som

Her virker nå modulo-operasjonen på begge sider av ekvivalenstegnet. Det betyr at x = an + r  og y = bn + r  hvor a og b igjen er heltall. Resten oppfyller 0 ≤ r < n. To tall er dermed kongruente når deres differens kan deles med modulus n. Denne egenskapen kan derfor også defineres ved at (x - y) mod n = 0 som betyr at x mod n = y mod n. Hvis tallene ikke er kongruente med hverandre, sies de å være «inkongruente» for denne modulusen.[3]

Som en eksempel kan man betrakte tallene 5 og 11. Med modulus n = 3 er 5 mod 3 = 2 og 11 mod 3 = 2. Derfor er 5 ≡ 11 (mod 3) slik at de er kongruente. Derimot modulo 4 er de to tallene inkongruente med hverandre.

Fra definisjonen følger at kongruenser modulo ett og samme tall kan legges til og trekkes fra hverandre. De kan også multipliseres sammen som om de skulle være vanlige likheter. Det betyr at hvis ab (mod n) og cd (mod n), så er

Hver side av en kongruens kan multipliseres med samme tall. Man kan også dividere hver side med samme tall forutsatt at dette tallet er relativt primisk med modulusen.

Eksempel[rediger | rediger kilde]

Hvis modulus n = 5 og man betrakter de to tallene 13 og 16, så er deres sum modulo 5

Når addendene er store, kan man først redusere dem ved å benytte at 13 ≡ 3 (mod 5) og 16 ≡ 1 (mod 5) slik at 13 + 16 ≡ 3 + 1 (mod 5) = 4.

Betrakter man istedet produktet av disse to tallene, er

Men dette resultatet kommer også frem ved å ta produktet mellom de kongruente tallene, 13⋅16 ≡ 3⋅1 (mod 5) = 3.

Ved divisjon må man være mer påpasselig. Selv om 45 ≡ 15 (mod 10), så er 9 inkongruent med 3 modulo 10. Derimot er 46 ≡ 18 (mod 7) som betyr at 23 ≡ 9 (mod 7) når man dividerer kongruensen med 2 på begge sider. Det er tillatt når denne faktoren er primisk med modulusen.

Kongruensklasser[rediger | rediger kilde]

Kongruens mellom to tall er en ekvivalensrelasjon for en gitt modulus som gjør det mulig å dele alle heltallene Z opp i ekvivalente klasser. Disse kalles da vanligvis for kongruensklasser eller restklasser.

Hvis n er modulus, betegner (n) eller nZ den klassen som inneholder tallene

De er alle kongruente med tallet 0. Tilsvarende vil alle tallene som er kongruente med tallet a, tilhøre kongruensklassen (n) + a. Man vil dermed få n forskjellige klasser representert ved tallene {0, 1, 2, 3, .. , n - 1}.

Hver slik konkruensklasse kan nå betraktes som et nytt, matematisk objekt og kan betegnes ved det tallet som representerer det. Når for eksempel n = 3, har man de tre klassene 0, 1 og 2. De kan kombineres ved addisjon ved at et representativt tall fra hver klasse adderes modulo n. Med n = 3 vil da 1 + 1 = 2 og 1 + 2 = 0. Klassene utgjør derfor en abelsk gruppe under addisjon hvor klassen 0 = (n) er enhetselementet. De danner på denne måten faktorgruppen Z/(n) = Z/nZ. Ofte skrives dette mer kompakt som Zn da restklassene også er en syklisk gruppe med n element.[1]

Enheter og nulldivisorer[rediger | rediger kilde]

Man kan også multiplisere sammen kongruensklasser ved å modulært multiplisere representanter for hver av klassene. For eksempel når modulus n = 6, blir

Under multiplikasjon utgjør derfor alle restklassene en matematisk ring med 1 = (n) + 1 som enhetselement. Den inneholder n  element og kan bli oppdelt i enheter og nulldivisorer. En enhet er definert ved å ha en invers. Det betyr at den er relativt primisk til modulus n. Deres antall er derfor gitt ved Eulers totientfunksjon φ(n). Resten av elementene er nulldivisorer.[4]

For eksempel, for n = 6 er 1 og 5 enheter, mens 0, 2, 3, 4 er nulldivisorer. Det kan man se fra at 23 = 34 = 0. På samme måte inneholder Z12 enhetene 1, 5, 7 og 11. De resterende 8 elementene er nulldivisorer. Produktet av to enheter er en ny enhet illustrert ved 57 = 11 i Z12. Sammen danner de en abelsk gruppe som kalles enhetsgruppen og betegnes (Z/nZ)× med φ(n) element.

I det spesielle tilfelle at modulus er et primtall p, er 0 den eneste nulldivisor i ringen. Da har hvert element a en multiplikativ invers a-1 = 1/a som oppfyller at aa-1 = 1. I såfall går ringen Z/pZ over til å bli en endelig tallkropp og betegnes som Fp eller GF(p). Velger man for eksempel p = 7, er 24 = 1 slik at 2-1 = 1/2 = 4 og derfor 3/2 = 34 = 5. Videre er 1/3 = 5 slik at 1/5 = 3, mens 6 er sin egen invers da 66 = 1. Slike tallkropper er av stor betydningen innen kryptografi.[5]

Fermats lille teorem[rediger | rediger kilde]

Den endelige tallkroppen Fp inneholder p element. Ser man bort fra elementet 0, danner de resterende p - 1  elementene en endelig gruppe hvor elementene kombineres ved multiplikasjon og har 1 som enhetselement. Denne betegnes vanligvis som (Fp)× eller GF×(p).[5]

Hvis man betrakter et element a, vil det gi p - 1 forskjellige element når det multipliseres med seg selv. Tilsammen utgjør de en syklisk gruppe. Dette kan illustereres for p = 5 ved å betrakte for eksempel elementet 2. Da er 22 = 22 = 4, 23 = 42 = 3, 24 = 32 = 1. Hadde man i stedet valgt a = 3 eller 4, ville igjen 34 = 44 = 1. Dette skjer alltid når p er et primtall slik at gruppen blir syklisk.

Generelt kan man da betrakte et vilkårlig element a i gruppen med en viss orden k. Denne er definert ved at ak = 1. Ifølge Lagranges teorem er dette tallet k en faktor i det totale antall gruppeelement. Det betyr at p - 1 = k m hvor m et et eller annet heltall. Dermed har man med en gang at

Det representative tallet a i konjugasjonsklassen oppfyller derfor

der a ikke skal være delbar med p. For eksempel med p = 7 er 26 = 64 ≡ 1 mod 7. Dette er Fermats lille teorem som har stor betydning i tallteori.[1]

Wilsons teorem[rediger | rediger kilde]

John Wilson var student ved Universitetet i Cambridge rundt år 1770 da en formulerte et nytt teorem i modulær aritmetikk. Det ble bevist av Lagrange noen få år senere og gjelder når modulus p er et primtall. Da er

når det uttrykkes ved fakultetsfunksjonen n! = 1⋅2⋅3⋅...⋅n. Alternativt kan man si at (p - 1)! + 1 er delelig med p når p er et primtall. Har man for eksempel p = 5, så finner man 4! = 24. Nå er 24 + 1 = 25 som er deilig med 5 i overensstemmelse med teoremet.[6]

Et enkelt bevis kan baseres på at restklassene {1, 2, 3, ... , p-1} er elementer i gruppen (Fp)×. Da hvert element a av disse har sin egen invers a-1, kan produktet 23⋅ ... ⋅p - 2 omskrives som (p - 3)/2 produkt av delprodukt på formen aa-1 = 1 som dermed også blir verdien til hele produktet. Resultatet er da

hvor p - 1 ≡ -1 (mod p) som gir innholdet av teoremet.

Som en konkret illustrasjon av denne argumentasjonen, kan man betrakte p = 11. Da finner man ved direkte utregning de inverse elementene 2-1 = 6, 3-1 = 4, 5-1 = 9 og 7-1 = 8 slik at

På lignende måte kan man bevise at for en ikke-primisk modulus n > 4 vil (n - 1)! ≡ 0 (mod n). I det spesielle tilfellet at n = 4, blir 3! = 6 ≡ 2 (mod 4). Rent praktisk betyr dette at hvis (n - 1)! er delelig med n > 4, så er n et sammensatt tall.[6]

Alternativt bevis[rediger | rediger kilde]

Wilsons teorem følger også ganske direkte fra Fermats lille teorem. Det sier at ligningen

er oppfylt for alle . Fra algebraens fundamentalteorem følger da at man må ha sammenhengen

Ved å sette x = p vil produktet på høyre side bli (p - 1)!. På venstre side vil man stå igjen med -1 da pp - 1 er null modulo p.

Primitive røtter[rediger | rediger kilde]

Hvert element a i enhetsgruppen (Z/nZ)× er relativt primisk med modulus n, det vil si at største felles faktor gcd(a,n) = 1. Det betyr at det totale antall element gruppen inneholder, er gitt ved totientfunksjonen φ(n). Når n er et primtall, er φ(n) = n - 1. Eulers teorem sier da at for hvert element a må man da ha at

Dette kravet vil generelt være oppfylt når ar ≡ 1 (mod n) der heltallet r er en faktor i tallet φ(n). Man sier da at elementet a har orden r  for modulus n. Elementet a = 1 har alltid orden r = 1 uavhengig av størrelsen til modulus. Alle element i gruppen som har den maksimale orden rmax = φ(n), kalles primitive røtter. Denne betegnelsen kommer fra tilsvarende løsninger av sirkeldelingsligningen. Hvert slikt element vil generere alle de andre elementene i gruppen ved at det multipliseres mange nok ganger med seg selv. Det kalles derfor også ofte for en «generator» og gruppen er syklisk.[6]

Når n = 3, består gruppen av φ(3) = 3 - 1 = 2 element som er {1, 2}. Nå er 22 = 4 ≡ 1 (mod 3) slik at 2 er en primitive rot. Likedan for n = 4 består gruppen av de to elementene 1 og 3 hvorav 3 er primitiv. For n = 5 inneholder gruppen φ(5) = 5 - 1 = 4 element som er {1, 2, 3, 4}. I dette tilfelle er både 2 og 3 primitive røtter, men ikke 4 da 42 = 16 ≡ 1 (mod 5).

Hvis g er en primitiv rot, vil den inverse

også være en primitiv rot. For eksempel når n = 7, kan man sjekke at 3 er en primitiv rot. Det inverse elementet er 3-1 = 36 - 1 mod 7 = 243 mod 7 = 5. Av de seks elementene {1, 2, 3, 4, 5, 6} er det bare 3 og 5 som er primitive for denne modulus. Når n = 8, er ingen av elementene {1, 3, 5, 7} primitive.

Primitive røtter finnes for alle moduli n = 2, 4, pk og 2pk der primtallet p > 2 og k er et naturlig tall. Det finnes ingen systematisk fremgangsmåte for å identifisere de primitive røttene bortsett fra ved direkte utregning.[7]

Lineære kongruenser[rediger | rediger kilde]

En eller flere polynomligning kan også løses innen rammen av modulær aritmetikk. De kalles da «kongruensrelasjoner» eller ganske enkelt for kongruenser. Avhengig av polynomenes grad, er de enkleste slike relasjoner lineære eller eventuelt kvadratiske kongruenser. I det spesielle tilfellet at modulus er et primtall p, tilsvarer dette å finne løsninger av ligningene innen tallkroppen Fp = Z/pZ.

Det enkleste tilfellet er en ligning med en ukjent. Den skrives som

hvor a og c er heltall. Denne relasjonen omtales som en lineær kongruens. Eventuelle løsninger kan finnes fra den ekvivalente ligningen

for ett eller flere heltall y. Denne kongruensen er da ekvivalent med en diofantisk ligning.

Løsningen av denne ligningen kan finnes ved bruk av Euklids algoritme og avhenger av den største felles divisor m = gcd(a,n). Når denne samtidig er en faktor i konstanten c, så har kongruensen m inkongruente løsninger i intervallet {0, 1, 2, 3, ..., n - 1}. Hvis det derimot ikke er tilfelle, finnes det ingen løsninger.[2]

Som et eksempel kan man betrakte den lineære kongruensen

Her er m = gcd(4,10) = 2 som også er en faktor i c = 6. Derfor finnes det to løsninger som er x = 4 og x = 9. Hadde man istedet her hatt c = 7, vil det ikke vært noen løsninger.

Når a og n er relativt primiske, er m = 1 og kongruensen har bare en løsning. Det er tilfellet når modulus n = p er et primtall og den lineære kongruensen kan skrives som ligningen

i tallkroppen Fp. Løsningen er da formelt gitt som x = a-1c. Har man for eksempel p = 7, er løsningen av 4x ≡ 6 (mod 7) gitt ved x = 5 fordi 4-1 = 2 og 26 = 5 i F7. På samme vis finner man at 16x ≡ 5 (mod 29) har løsningen x = 13. Når p er stor, er likevel fremgangsmåten med Euklids algoritme den raskeste.[2]

Se også[rediger | rediger kilde]

Referanser[rediger | rediger kilde]

  1. ^ a b c J. Reed og J. Aarnes, Matematikk i vår tid, Universitetsforlaget, Oslo (1967).
  2. ^ a b c d J.H. Silverman, A Friendly Introduction to Number Theory, Pearson Education, New Jersey (2011). ISBN 0-321-81619-6.
  3. ^ R. Courant and H. Robbins, What is Mathematics: An Elementary Approach to Ideas and Methods, Oxford University Press, Oxford (1996). ISBN 978-0-19-510519-3.
  4. ^ S. MacLane and G. Birkhoff, Algebra, MacMillan Publishing Co., New York (1979). ISBN 0-02-978830-7.
  5. ^ a b A. Ash and R. Gross, Fearless Symmetry: Exposing the Hidden Patterns of Numbers, Princeton University Press, New Jersey (2006). ISBN 0-691-12492-2.
  6. ^ a b c O. Ore, Number Theory and its History, Dover Publications, New York (1988). ISBN 0-486-65620-9.
  7. ^ M.R. Schroeder, Number Theory in Science and Communication, Springer-Verlag, Berlin (1984). ISBN 3-540-12164-1.

Eksterne lenker[rediger | rediger kilde]