Modularna aritmetika

V matematiki je modularna aritmetika sistem aritmetike za cela števila, kjer se števila "ponovno vrtijo okoli", ko dosežejo določeno vrednost, ki se imenuje modulo (ali modul). Moderni približek modularni aritmetiki je uveljavil Carl Friedrich Gauss v svoji knjigi Disquisitiones Arithmeticae, ki jo je izdal leta 1801.
Vsem poznana uporaba modularne aritmetike je 12-urna ura, kjer je dan razdeljen na dve 12-urni periodi. Če je sedaj ura 7:00, bo čez 8 ur enaka 3:00. Navadno seštevanje bi nam dalo rezultat Predloga:Brez preloma, a to ne bo odgovor, ker se čas po uri "obrne naokoli" na vsakih 12 ur. Ker se številke na uri ponastavijo, ko pridejo do 12, ima ura aritmetični modul enak 12. Če to izrazimo s spodnjo definicijo, je 15 kongruentno 3 v modulu 12, torej je (24-urni) čas "15:00" enak času "3:00" na uri.
Definicije relacij v konguencah
Modularna aritmetika se lahko obravnava matematično z vpeljavo kongruenčne relacije na celih številih, ki se da združiti z operacijami na celih številih: seštevanje, odštevanje in množenje. Za naravno število Predloga:Matematična formula, sta dve števili Predloga:Matematična formula in Predloga:Matematična formula Predloga:Dfn, če je njuna razlika Predloga:Matematična formula celi večkratnik od Predloga:Matematična formula (torej če obstaja tako celo število Predloga:Matematična formula, da velja Predloga:Matematična formula). Ta kongruenčna relacija se običajno šteje, ko sta Predloga:Matematična formula in Predloga:Matematična formula celi števili, označi pa se jo z:
Oklepaji pomenijo, da Predloga:Matematična formula velja za celo enačbo, ne samo za desno stran (v tem primeru b). Včasih se uporablja tudi Predloga:Matematična formula namesto Predloga:Matematična formula. Če se oklepaje izpusti, pomeni to v splošnem, da označuje "mod" operacijo modulo, ki se nanaša samo na desno stran, spremeni pa se tudi v enakost, da velja Predloga:Matematična formula.
Število Predloga:Matematična formula se imenuje modul kongruence.
Kongruenčna relacija se lahko zapiše tudi kot
kar eksplicitno prikaže Evklidsko deljenje. Kaj pa če Predloga:Matematična formula ni ostanek števila Predloga:Matematična formula pri deljenju z Predloga:Matematična formula? Bolj natančno lahko relacijo Predloga:Matematična formula opišemo tako, da morata tako Predloga:Matematična formula, kot tudi Predloga:Matematična formula imeti enak ostanek pri deljenju z Predloga:Matematična formula. Torej
kjer je Predloga:Matematična formula skupni delitelj. Če odštejemo ta dva izraza, pridemo do prejšnje relacije:
kjer definiramo Predloga:Matematična formula
Primeri
Na primer
ker je Predloga:Matematična formula, kar je večkratnik od 12, ali, ekvivalentno, ker imata tako 38, kot tudi 14 enak ostanek 2 pri deljenju z 12.
Enako pravilo velja tudi za negativne vrednosti:
Ker se lahko pogosto pojavi več relacij, kjer so različni moduli naenkrat, smo v zgornji sistem vedno zapisali modulo. Kongruenčna relacija za dani modul velja za binarno relacijo.
Lastnosti
Kongruenčna relacija zadovolji vsem pogojem za ekvivalenčno relacijo:
- Refleksivnost: Predloga:Matematična formula
- Simetrija: Predloga:Matematična formula če Predloga:Matematična formula za vse Predloga:Matematična formula, Predloga:Matematična formula in Predloga:Matematična formula.
- Tranzitivnost: Če Predloga:Matematična formula in Predloga:Matematična formula, potem Predloga:Matematična formula
Če velja Predloga:Matematična formula in Predloga:Matematična formula ali če velja Predloga:Matematična formula potem:
- Predloga:Matematična formula za katerokoli celo število Predloga:Matematična formula (kar se sklada s premikom)
- Predloga:Matematična formula za katerokoli celo število Predloga:Matematična formula (kar je skladno s povečanjem)
- Predloga:Matematična formula (skladno s seštevanjem)
- Predloga:Matematična formula (skladno z odštevanjem)
- Predloga:Matematična formula (skladno z množenjem)
- Predloga:Matematična formula za katerokoli nenegativno celo število Predloga:Matematična formula (skladno s potenciranjem)
- Predloga:Matematična formula, za katerikoli polinom Predloga:Matematična formula s celimi koeficienti (kar je skladno s polinomsko evaluacijo)
Če je Predloga:Matematična formula, potem v splošnem ni pravilno Predloga:Matematična formula. A to velja, če velja sledeči pogoj:
- Če velja Predloga:Matematična formula kjer je Predloga:Matematična formula Eulerjeva funkcija, potem Predloga:Matematična formula, če je Predloga:Matematična formula tuja z Predloga:Matematična formula
Za pokrajšanje skupnih členov, poznamo sledeča pravila:
- Če je Predloga:Matematična formula za katerokoli celo število Predloga:Matematična formula, potem je Predloga:Matematična formula
- Če je Predloga:Matematična formula in sta si Predloga:Matematična formula in Predloga:Matematična formula tuji si števili, potem je Predloga:Matematična formula
Modularni multiplikativni inverz je definiran s sledečimi pravili:
- Obstoj: obstaja celo število, ki je označeno z Predloga:Matematična formula, da velja Predloga:Matematična formula če in samo če je Predloga:Matematična formula tuje z Predloga:Matematična formula. To število Predloga:Matematična formula se imenuje modularni multiplikativni inverz modula Predloga:Matematična formula.
- Če je Predloga:Matematična formula in obstaja Predloga:Matematična formula, potem je Predloga:Matematična formula (skladno z multiplikativnim inverzom in če ima Predloga:Matematična formula edinstven modul Predloga:Matematična formula)
- Če je Predloga:Matematična formula in Predloga:Matematična formula je tuje Predloga:Matematična formula, potem je rešitev te linearne kongruence podana z Predloga:Matematična formula
Multiplikativni inverz Predloga:Matematična formula se lahko učinkovito izračuna z uporabo Bézoutove identitete za z uporabo razširjenega Evklidovega algoritma. V posebnem, če je Predloga:Matematična formula praštevilo, potem sta si Predloga:Matematična formula in Predloga:Matematična formula tuji za vsak Predloga:Matematična formula, da velja Predloga:Matematična formula; torej multiplikativni inverz obstaja za vse Predloga:Matematična formula, ki niso kongruentni ničelnemu modulu Predloga:Matematična formula.
Nekaj nekaterih bolj naprednih lastnosti kongruenčnih relacij je zbranih tukaj:
- Fermatov mali izrek: Če je Predloga:Matematična formula praštevilo in ne deli Predloga:Matematična formula, potem Predloga:Matematična formula.
- Eulerjev izrek: Če sta si Predloga:Matematična formula in Predloga:Matematična formula tuji si števili, potem velja Predloga:Matematična formula, kjer je Predloga:Matematična formula Eulerjeva funkcija fi
- Preprosta posledica Fermatovega malega izreka je: če je Predloga:Matematična formula praštevilo, potem je Predloga:Matematična formula multiplikativni inverz od Predloga:Matematična formula. Še bolj splošno iz Eulerjevega izreka: če sta si Predloga:Matematična formula in Predloga:Matematična formula tuji, potem je Predloga:Matematična formula.
- Druga preprosta posledica je, da če velja Predloga:Matematična formula kjer je Predloga:Matematična formula Eulerjeva fi funkcija, potem velja Predloga:Matematična formula, kjer je Predloga:Matematična formula tuje z Predloga:Matematična formula.
- Wilsonov izrek: Predloga:Matematična formula je praštevilo, če in samo če velja Predloga:Matematična formula.
- Kitajski izrek o ostankih: Za katerakoli Predloga:Matematična formula in Predloga:Matematična formula ter tuji števili Predloga:Matematična formula in Predloga:Matematična formula, obstaja unikatno celo število Predloga:Matematična formula, da velja Predloga:Matematična formula in Predloga:Matematična formula. Velja tudi Predloga:Matematična formula, kjer je Predloga:Matematična formula inverz od Predloga:Matematična formula modulo Predloga:Matematična formula in Predloga:Matematična formula je inverz od Predloga:Matematična formula modulo Predloga:Matematična formula.
- Lagrangeov izrek: Kongruenca Predloga:Matematična formula, kjer je Predloga:Matematična formula praštevilo in Predloga:Matematična formula je polinom s celimi koeficienti, da ima Predloga:Matematična formula največ Predloga:Matematična formula korenov.
- Primitivni koren modula n: Število Predloga:Matematična formula je primitivni koren modula Predloga:Matematična formula, če obstaja za vsako celo število Predloga:Matematična formula, ki je tuje Predloga:Matematična formula, neko celo število Predloga:Matematična formula, da velja Predloga:Matematična formula. Primitivni koren modula Predloga:Matematična formula obstaja če in samo če je Predloga:Matematična formula enak Predloga:Matematična formula ali Predloga:Matematična formula, kjer je Predloga:Matematična formula liho praštevilo in je Predloga:Matematična formula naravno število. Če obstaja primitivni koren modula Predloga:Matematična formula, potem obstaja natanko Predloga:Matematična formula takšnih primitivnih korenov, kjer je Predloga:Matematična formula Eulerjeva fi funkcija.
- Kvadratični ostanek: Celo število Predloga:Matematična formula je kvadratični ostanek modula Predloga:Matematična formula, če obstaja tako celo število Predloga:Matematična formula, da velja Predloga:Matematična formula. Eulerjev kriterij nam pravi, da če je Predloga:Matematična formula liho praštevilo in a ni večkratnik od p, potem je Predloga:Matematična formula kvadratični ostanek modula Predloga:Matematična formula če in samo če
Kongruenčni razredi
Kot katerakoli kongruenčna relacija, je kongruenčni modulo Predloga:Matematična formula ekvivalenčna relacija ter ekvivalenčni razred celega števila Predloga:Matematična formula, ki se označi z Predloga:Matematična formula, je množica Predloga:Matematična formula. Ta množica, ki jo sestavljajo cela števila, ki so kongruentna Predloga:Matematična formula po modulu Predloga:Matematična formula, se imenuje kongruenčni razred ali razred ostankov ali preprosto ostanek celega števila Predloga:Matematična formula, po modulu Predloga:Matematična formula. Če je modulo Predloga:Matematična formula razpoznaven iz besedila, se lahko ta ostanek označi z Predloga:Matematična formula.
Primeri implementacij
Spodaj so tri dokaj hitre funkcije v jeziku C, dve za izvajanje modularnih množenj in ena za izvajanje modularnega potenciranja na neoznačenih celih (naravnih) številih, ki niso večja od 63 bitov.
Algoritemski način za izračunanje
:
uint64_t mul_mod(uint64_t a, uint64_t b, uint64_t m)
{
uint64_t d = 0, mp2 = m >> 1;
int i;
if (a >= m) a %= m;
if (b >= m) b %= m;
for (i = 0; i < 64; ++i)
{
d = (d > mp2) ? (d << 1) - m : d << 1;
if (a & 0x8000000000000000ULL)
d += b;
if (d >= m) d -= m;
a <<= 1;
}
return d;
}
Na računalnikih, kjer je mogoča tudi razširjena natančnost z najmanj 64 biti mantise (kot recimo tip long double na večini x86 C prevajalnikih), se lahko uporabi sledeča implementacija, saj po trdih komponentah množenje plavajoče vejice vodi v obdržane najbolj zanesljive bite, medtem ko množenje celih števil vodi v obdržane najmanj zanesljive bite:
uint64_t mul_mod(uint64_t a, uint64_t b, uint64_t m)
{
long double x;
uint64_t c;
int64_t r;
if (a >= m) a %= m;
if (b >= m) b %= m;
x = a;
c = x * b / m;
r = (int64_t)(a * b - c * m) % (int64_t)m;
return r < 0 ? r + m : r;
}
Spodnja je C funkcija za izvajanje modularnega potenciranja, ki uporablja funkcijo Predloga:Matematična formula, ki je bila implementirana zgoraj. Algoritemski način za izračunanje
:
uint64_t pow_mod(uint64_t a, uint64_t b, uint64_t m)
{
uint64_t r = m==1?0:1;
while (b > 0) {
if (b & 1)
r = mul_mod(r, a, m);
b = b >> 1;
a = mul_mod(a, a, m);
}
return r;
}
A da bi vse zgornje poti delovale, ne sme Predloga:Matematična formula prekoračiti 63 bitov.
Glej tudi
- Booleanov obroč
- Krožno blažilnik
- Deljenje (matematika)
- Končno polje
- Legendrov simbol
- Modularno potenciranje
- Pisanova perioda (Fibonaccijevo zaporedje modula n)
- Primitivni koren modula n
- Kvadratna recipročnost
- Kvadratni ostanek
- Racionalna rekonstrukcija (matematika)
- Zmanjšani sistem ostankov
- Aritmetika serijskih števil (poseben primer modularne aritmetike)
- Booleanova algebra dveh elementov
- Področja, ki se nanašajo na teorijo grup za modularno aritmetiko:
- Ostali pomembni izreki, ki se nanašajo na modularno aritmetiko:
- Carmichaelov izrek
- Kitajski izrek o ostankih
- Eulerjev izrek
- Fermatov mali izrek (posebni primer Eulerjevega izreka)
- Lagrangeov izrek
- Thueova lema
Sklici
Viri
- John L. Berggren. "modular arithmetic". Encyclopædia Britannica.
- Apostol, Tom M. (1976), Introduction to analytic number theory, Undergraduate Texts in Mathematics, New York-Heidelberg: Springer-Verlag, ISBN 978-0-387-90163-3, MR 0434929, Zbl 0335.10001. See in particular chapters 5 and 6 for a review of basic modular arithmetic.
- Maarten Bullynck "Modular Arithmetic before C.F. Gauss. Systematisations and discussions on remainder problems in 18th-century Germany"
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. Predloga:ISBNISBN 0-262-03293-7. Section 31.3: Modular arithmetic, pp. 862–868.
- Anthony Gioia, Number Theory, an Introduction Reprint (2001) Dover. Predloga:ISBNISBN 0-486-41449-3.
- Predloga:Navedi knjigo
- Predloga:Navedi knjigo
- Predloga:Navedi knjigo
Zunanje povezave
- Hazewinkel, Michiel, ed. (2001) [1994], "Congruence", Encyclopedia of Mathematics, Springer Science+Business Media B.V. / Kluwer Academic Publishers, ISBN 978-1-55608-010-4
- V tem članku o modularni umetnosti se lahko vsak nauči nekaj o uporabi modularne aritmetike v umetnosti.
- Predloga:MathWorld
- Članek o modularni aritmetiki na wikiju GIMPS
- Modularna aritmetika in vzorci v seštevanju in tabele množenja