14.08.2013 Views

ARVUTEOORIA - Cs.ioc.ee

ARVUTEOORIA - Cs.ioc.ee

ARVUTEOORIA - Cs.ioc.ee

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

<strong>ARVUTEOORIA</strong><br />

T<strong>ee</strong>ma 6<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Loengu kava<br />

1 Kord- ja algarvud<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

2 Suurim ühistegur<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

3 Moodularitm<strong>ee</strong>tika<br />

4 Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Järgmine punkt<br />

1 Kord- ja algarvud<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

2 Suurim ühistegur<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

3 Moodularitm<strong>ee</strong>tika<br />

4 Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Jaguvus<br />

Definitsioon<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Olgu a ja b täisarvud. Arv a jagab arvu b ehk arv b jagub arvuga a,<br />

kui leidub selline täisarv m, et b = am.<br />

Tähistused:<br />

Näiteks<br />

a|b arv a jagab arvu b<br />

b.a arv b jagub arvuga a<br />

3|111 7| − 91 −7| − 91<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Tegurid<br />

Definitsioon<br />

Kui a|b, siis<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

arvu a nimetatakse arvu b teguriks ehk jagajaks<br />

arvu b nimetatakse arvu a kordseks<br />

Jaguvuse definitsiooni põhjal on arv a arvu b tegur, kui leidub<br />

selline täisarv m, et b = am.<br />

Omadusi<br />

Igal täisarvul b on vähemalt järgmised tegurid: 1,−1,b,−b.<br />

Iga täisarvu a korral a|0, vastupidine seos 0|a kehtib parajasti<br />

siis, kui a = 0. S<strong>ee</strong>ga 0|0.<br />

Iga täisarvu b korral 1|b, vastupidine b|1 kehtib parajasti siis,<br />

kui b = 1 või b = −1.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Tegurid<br />

Definitsioon<br />

Kui a|b, siis<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

arvu a nimetatakse arvu b teguriks ehk jagajaks<br />

arvu b nimetatakse arvu a kordseks<br />

Jaguvuse definitsiooni põhjal on arv a arvu b tegur, kui leidub<br />

selline täisarv m, et b = am.<br />

Omadusi<br />

Igal täisarvul b on vähemalt järgmised tegurid: 1,−1,b,−b.<br />

Iga täisarvu a korral a|0, vastupidine seos 0|a kehtib parajasti<br />

siis, kui a = 0. S<strong>ee</strong>ga 0|0.<br />

Iga täisarvu b korral 1|b, vastupidine b|1 kehtib parajasti siis,<br />

kui b = 1 või b = −1.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Tegurid<br />

Definitsioon<br />

Kui a|b, siis<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

arvu a nimetatakse arvu b teguriks ehk jagajaks<br />

arvu b nimetatakse arvu a kordseks<br />

Jaguvuse definitsiooni põhjal on arv a arvu b tegur, kui leidub<br />

selline täisarv m, et b = am.<br />

Omadusi<br />

Igal täisarvul b on vähemalt järgmised tegurid: 1,−1,b,−b.<br />

Iga täisarvu a korral a|0, vastupidine seos 0|a kehtib parajasti<br />

siis, kui a = 0. S<strong>ee</strong>ga 0|0.<br />

Iga täisarvu b korral 1|b, vastupidine b|1 kehtib parajasti siis,<br />

kui b = 1 või b = −1.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Tegurid<br />

Definitsioon<br />

Kui a|b, siis<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

arvu a nimetatakse arvu b teguriks ehk jagajaks<br />

arvu b nimetatakse arvu a kordseks<br />

Jaguvuse definitsiooni põhjal on arv a arvu b tegur, kui leidub<br />

selline täisarv m, et b = am.<br />

Omadusi<br />

Igal täisarvul b on vähemalt järgmised tegurid: 1,−1,b,−b.<br />

Iga täisarvu a korral a|0, vastupidine seos 0|a kehtib parajasti<br />

siis, kui a = 0. S<strong>ee</strong>ga 0|0.<br />

Iga täisarvu b korral 1|b, vastupidine b|1 kehtib parajasti siis,<br />

kui b = 1 või b = −1.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvuse lihtsamad omadused<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Täisarvude hulgal määratud jaguvuserelatsioonil on järgmised<br />

omadused:<br />

Refleksiivsus: iga täisarvu a korral a|a.<br />

"Antisümm<strong>ee</strong>tria": kui a|b ja b|a, siis a = b või a = −b.<br />

Transitiivsus: kui a|b ja b|c, siis a | c.<br />

Tõestamiseks kasutada jaguvuse definitsiooni.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvuse seos tehetega<br />

1 Kui a|b, siis ±a| ± b.<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

2 Kui a|b ja a|c, siis suvaliste täisarvude s ja t korral a|bs + ct.<br />

3 a|b parajasti siis, kui iga täisarvu c korral ac|bc.<br />

Esimene omadus tähendab, et jaguvuse uurimisel võime piirduda<br />

mittenegatiivsete täisarvudega.<br />

Teisest omadusest järeldub, et kui arv a jagab arve b ja c, siis jagab<br />

ta ka nende arvude summat ja vahet.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvuse seos tehetega<br />

1 Kui a|b, siis ±a| ± b.<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

2 Kui a|b ja a|c, siis suvaliste täisarvude s ja t korral a|bs + ct.<br />

3 a|b parajasti siis, kui iga täisarvu c korral ac|bc.<br />

Esimene omadus tähendab, et jaguvuse uurimisel võime piirduda<br />

mittenegatiivsete täisarvudega.<br />

Teisest omadusest järeldub, et kui arv a jagab arve b ja c, siis jagab<br />

ta ka nende arvude summat ja vahet.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvuse seos tehetega<br />

1 Kui a|b, siis ±a| ± b.<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

2 Kui a|b ja a|c, siis suvaliste täisarvude s ja t korral a|bs + ct.<br />

3 a|b parajasti siis, kui iga täisarvu c korral ac|bc.<br />

Esimene omadus tähendab, et jaguvuse uurimisel võime piirduda<br />

mittenegatiivsete täisarvudega.<br />

Teisest omadusest järeldub, et kui arv a jagab arve b ja c, siis jagab<br />

ta ka nende arvude summat ja vahet.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Jäägiga jagamine<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kui a ja b täisarvud, kusjuures a > 0 ja a ∤ b, saab arvu b arvuga a<br />

jagada jäägiga.<br />

Jäägiga jagamine tähendab arvu b esitamist kujul<br />

Siin on<br />

Näide<br />

Kui a = 3 ja b = 17, siis<br />

b = aq + r , kus 0 r < a.<br />

b – jagatav<br />

a – jagaja<br />

q – jagatis<br />

r – jääk<br />

17 = 3 · 5 + 2.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Jäägiga jagamine<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kui a ja b täisarvud, kusjuures a > 0 ja a ∤ b, saab arvu b arvuga a<br />

jagada jäägiga.<br />

Jäägiga jagamine tähendab arvu b esitamist kujul<br />

Siin on<br />

Näide<br />

Kui a = 3 ja b = 17, siis<br />

b = aq + r , kus 0 r < a.<br />

b – jagatav<br />

a – jagaja<br />

q – jagatis<br />

r – jääk<br />

17 = 3 · 5 + 2.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Negatiivsete arvude jagamine<br />

Jääk on alati mittenegatiivne.<br />

Näiteks<br />

Kui a = 3 ja b = −17, siis<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

−17 = 3 · (−6) + 1.<br />

Võrduses b = a · q + r peab alati kehtima 0 r < a .<br />

Arvu b saab alati ülal kirjeldatud viisil esitada, sest jadas<br />

...,−3a,−2a,−a,0,a,2a,3a,...<br />

saab alati leida kaks järjestikust arvu, mille vahel b asub.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Negatiivsete arvude jagamine<br />

Jääk on alati mittenegatiivne.<br />

Näiteks<br />

Kui a = 3 ja b = −17, siis<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

−17 = 3 · (−6) + 1.<br />

Võrduses b = a · q + r peab alati kehtima 0 r < a .<br />

Arvu b saab alati ülal kirjeldatud viisil esitada, sest jadas<br />

...,−3a,−2a,−a,0,a,2a,3a,...<br />

saab alati leida kaks järjestikust arvu, mille vahel b asub.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Negatiivsete arvude jagamine<br />

Jääk on alati mittenegatiivne.<br />

Näiteks<br />

Kui a = 3 ja b = −17, siis<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

−17 = 3 · (−6) + 1.<br />

Võrduses b = a · q + r peab alati kehtima 0 r < a .<br />

Arvu b saab alati ülal kirjeldatud viisil esitada, sest jadas<br />

...,−3a,−2a,−a,0,a,2a,3a,...<br />

saab alati leida kaks järjestikust arvu, mille vahel b asub.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Järgmine punkt<br />

1 Kord- ja algarvud<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

2 Suurim ühistegur<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

3 Moodularitm<strong>ee</strong>tika<br />

4 Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Algarv ja kordarv<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Vaatleme järgnevalt ainult positiivseid täisarve ja nende positiivseid<br />

tegureid.<br />

Igal positiivsel täisarvul a on kindlasti olemas tegurid 1 ja a.<br />

Algarv on selline ühest suurem naturaalarv n, millel pole<br />

rohkem positiivseid tegureid kui 1 ja n.<br />

Kordarv on selline ühest suurem naturaalarv n, millel on ka<br />

muid positiivseid tegureid peale 1 ja n.<br />

Arv 1 ei ole ei algarv ega kordarv.<br />

Algarvud: 2,3,5,7,11,13,17,19,23,29,31,37,41,...<br />

Kordarvud: 4,6,8,9,10,12,14,15,16,18,20,21,22,...<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Algarvulisuse kontrollimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kuidas teha kindlaks, kas etteantud naturaalarv n on algarv?<br />

Kontrollida läbi kõik arvud 2,...,n − 1. Kui n ei jagu ühegagi<br />

nendest, siis ta on algarv.<br />

Kontrollida läbi kõik arvud 2,..., √ n. Kui n on kordarv, siis tal<br />

leidub tegur ka nende arvude hulgas.<br />

Tõenäosuslikud polünomiaalsed m<strong>ee</strong>todid (Rabin-Milleri test).<br />

Polünomiaalne algoritm (2002).<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Algarvulisuse kontrollimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kuidas teha kindlaks, kas etteantud naturaalarv n on algarv?<br />

Kontrollida läbi kõik arvud 2,...,n − 1. Kui n ei jagu ühegagi<br />

nendest, siis ta on algarv.<br />

Kontrollida läbi kõik arvud 2,..., √ n. Kui n on kordarv, siis tal<br />

leidub tegur ka nende arvude hulgas.<br />

Tõenäosuslikud polünomiaalsed m<strong>ee</strong>todid (Rabin-Milleri test).<br />

Polünomiaalne algoritm (2002).<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Algarvulisuse kontrollimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kuidas teha kindlaks, kas etteantud naturaalarv n on algarv?<br />

Kontrollida läbi kõik arvud 2,...,n − 1. Kui n ei jagu ühegagi<br />

nendest, siis ta on algarv.<br />

Kontrollida läbi kõik arvud 2,..., √ n. Kui n on kordarv, siis tal<br />

leidub tegur ka nende arvude hulgas.<br />

Tõenäosuslikud polünomiaalsed m<strong>ee</strong>todid (Rabin-Milleri test).<br />

Polünomiaalne algoritm (2002).<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Algarvulisuse kontrollimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kuidas teha kindlaks, kas etteantud naturaalarv n on algarv?<br />

Kontrollida läbi kõik arvud 2,...,n − 1. Kui n ei jagu ühegagi<br />

nendest, siis ta on algarv.<br />

Kontrollida läbi kõik arvud 2,..., √ n. Kui n on kordarv, siis tal<br />

leidub tegur ka nende arvude hulgas.<br />

Tõenäosuslikud polünomiaalsed m<strong>ee</strong>todid (Rabin-Milleri test).<br />

Polünomiaalne algoritm (2002).<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Algarvude arv<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Eukleidese teor<strong>ee</strong>m 6.4.1<br />

Leidub lõpmata palju algarve.<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Tõestus. Oletame väite vastaselt, et algarve on lõplik hulk:<br />

Vaatleme arvu<br />

p1,p2,p3,...,pk.<br />

n = p1p2p3 ···pk + 1.<br />

S<strong>ee</strong> ei jagu algarvudega p1,p2,p3,...,pk, sest ta annab<br />

nendega jagades jäägi 1. Järelikult on n ise algarv või tal<br />

leidub algarvuline tegur, mis erineb algarvudest<br />

p1,p2,p3,...,pk, kummalgi juhul vastuolu. m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Algarvude arv (2)<br />

Eukleidese teor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Leidub lõpmata palju algarve.<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Tõestus 2. Tõestame, et iga naturaalarvu n jaoks leidub temast<br />

suurem algarv.<br />

Olgu p arvu n! + 1 vähim ühest erinev tegur. Siis<br />

p on algarv, sest kui tal leiduks tegur 1 ja p vahel,<br />

siis s<strong>ee</strong> tegur oleks ka arvu n! + 1 tegur ning p ei<br />

oleks vähim tegur.<br />

p > n, sest kui s<strong>ee</strong> väide ei kehtiks, oleks korraga<br />

p|n! ja p|n! + 1, millest omakorda järeldub, et<br />

p|(n! + 1) − n! = p|1, mis on aga võimatu.<br />

m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Eratosthenese sõel<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kirjutame välja kõik arvud 1,2,...,n.<br />

Kriipsutame maha arvu 1.<br />

Järgmine allesjääv arv on 2; kriipsutame maha kõik arvu 2<br />

kordsed.<br />

Järgmine allesjääv arv on 3; kriipsutame maha kõik arvu 3<br />

kordsed.<br />

Järgmine allesjääv arv on 5 jne.<br />

Algarvud on parajasti n<strong>ee</strong>d, mis protsessi lõppedes alles jäävad.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Eratosthenese sõel: näide<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

1 2 3 4 5 6 7 8 9 10<br />

11 12 13 14 15 16 17 18 19 20<br />

21 22 23 24 25 26 27 28 29 30<br />

31 32 33 34 35 36 37 38 39 40<br />

41 42 43 44 45 46 47 48 49 50<br />

51 52 53 54 55 56 57 58 59 60<br />

61 62 63 64 65 66 67 68 69 70<br />

71 72 73 74 75 76 77 78 79 80<br />

81 82 83 84 85 86 87 88 89 90<br />

91 92 93 94 95 96 97 98 99 100<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Eratosthenese sõel: näide<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

× 2 3 4 5 6 7 8 9 10<br />

11 12 13 14 15 16 17 18 19 20<br />

21 22 23 24 25 26 27 28 29 30<br />

31 32 33 34 35 36 37 38 39 40<br />

41 42 43 44 45 46 47 48 49 50<br />

51 52 53 54 55 56 57 58 59 60<br />

61 62 63 64 65 66 67 68 69 70<br />

71 72 73 74 75 76 77 78 79 80<br />

81 82 83 84 85 86 87 88 89 90<br />

91 92 93 94 95 96 97 98 99 100<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Eratosthenese sõel: näide<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

× 2 3 × 5 × 7 × 9 ×<br />

11 × 13 × 15 × 17 × 19 ×<br />

21 × 23 × 25 × 27 × 29 ×<br />

31 × 33 × 35 × 37 × 39 ×<br />

41 × 43 × 45 × 47 × 49 ×<br />

51 × 53 × 55 × 57 × 59 ×<br />

61 × 63 × 65 × 67 × 69 ×<br />

71 × 73 × 75 × 77 × 79 ×<br />

81 × 83 × 85 × 87 × 89 ×<br />

91 × 93 × 95 × 97 × 99 ×<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Eratosthenese sõel: näide<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

× 2 3 × 5 × 7 × × ×<br />

11 × 13 × × × 17 × 19 ×<br />

× × 23 × 25 × × × 29 ×<br />

31 × × × 35 × 37 × × ×<br />

41 × 43 × × × 47 × 49 ×<br />

× × 53 × 55 × × × 59 ×<br />

61 × × × 65 × 67 × × ×<br />

71 × 73 × × × 77 × 79 ×<br />

× × 83 × 85 × × × 89 ×<br />

91 × × × 95 × 97 × × ×<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Eratosthenese sõel: näide<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

× 2 3 × 5 × 7 × × ×<br />

11 × 13 × × × 17 × 19 ×<br />

× × 23 × × × × × 29 ×<br />

31 × × × × × 37 × × ×<br />

41 × 43 × × × 47 × × ×<br />

× × 53 × × × × × 59 ×<br />

61 × × × × × 67 × × ×<br />

71 × 73 × × × × × 79 ×<br />

× × 83 × × × × × 89 ×<br />

× × × × × × 97 × × ×<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Algarvude jaotumine<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Algarvud paiknevad naturaalarvude jadas väga ebaühtlaselt.<br />

Kaks algarvu võivad asuda järjest. Ainukesed sellised on 2 ja 3.<br />

Kui kaks algarvu erinevad teineteisest kahe võrra, siis<br />

nimetatakse neid kaksikalgarvudeks. Näiteks 17 ja 19 või 3557<br />

ja 3559. Oletatakse, et kaksikute paare on lõpmata palju.<br />

Teor<strong>ee</strong>m 6.4.2<br />

Iga positiivse täisarvu k korral leidub k järjestikust kordarvu.<br />

Tõestus. Olgu n = k + 1. Arvud n! + 2,n! + 3,...,n! + n on kõik<br />

kordarvud, sest i|n! + i igai = 2,3,...,n korral. m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Algarvude jaotusdiagramme<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Algarvufunktsioon<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Algarvude jaotumist kirjeldab algarvufunktsioon<br />

Esimesed väärtused:<br />

π(n) = algarvude arv hulgas {1,2,...,n}<br />

π(1) = 0 π(2) = 1 π(3) = 2 π(4) = 2<br />

π(5) = 3 π(6) = 3 π(7) = 4 π(8) = 4<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Algarvuteor<strong>ee</strong>m<br />

Teor<strong>ee</strong>m 6.4.3.<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kehtib asümptootiline ekvivalents<br />

π(n) ∼ n<br />

lnn<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Valemi tuletas C. F. Gauss 18. sajandi lõpul algarvude tabeli<br />

analüüsimisel.<br />

Tõestasid J. Hadamard ja C. de la Vallée Poussin teineteisest<br />

sõltumatult aastal 1896.<br />

On olemas ka täpsemaid empiirilisi valemeid, näiteks<br />

π(n) =<br />

n<br />

lnn − 1,08366<br />

n dt<br />

(Legendre) π(n) ≈<br />

2 lnt (Gauss)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Algarvuteor<strong>ee</strong>m (2)<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Näide: leida, kui suur on 200-kohaliste arvude hulgas algarvude<br />

osakaal.<br />

200-kohalisi arve on<br />

10 200 − 10 199 = 9 · 10 199<br />

200-kohalisi algarve on ligikaudu<br />

π(10 200 ) − π(10 199 ) ≈ 10200 10199<br />

− ≈ 1,95 · 10197<br />

200ln10 199ln10<br />

Algarvude osakaal on ligikaudu<br />

1,95 · 10197 1<br />

≈<br />

9 · 10199 460<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Arvu lahutamine algtegurite korrutiseks<br />

Kui arv ei ole algarv, siis saab ta esitada kahe väiksema teguri<br />

korrutisena.<br />

Kui mõni saadud teguritest ei ole algarv, siis saab selle teguri<br />

esitada kahe väiksema teguri korrutisena jne.<br />

Järelikult saab iga arvu, mis pole algarv, esitada algarvude<br />

korrutisena.<br />

Kui arv juba on algarv, siis tõlgendame teda korrutisena, kus<br />

esineb ainult üks tegur.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Aritm<strong>ee</strong>tika põhiteor<strong>ee</strong>m<br />

Teor<strong>ee</strong>m<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Iga ühest suurema naturaalarvu saab parajasti ühel viisil esitada<br />

algarvude korrutisena, arvestamata tegurite järjekorda.<br />

Tõestuse id<strong>ee</strong>. (Täpsem tõestus esitatakse hiljem)<br />

Oletame, et leidub naturaalarve, millel on kaks esitust algarvude<br />

korrutisena. Olgu n vähim selline naturaalarv.<br />

Tõestame, et siis saab leida naturaalarvu n ′ , mis on väiksem kui n ja<br />

millel on samuti kaks esitust algarvude korrutisena.<br />

Et n juba oli vähim selline arv, siis tähendab s<strong>ee</strong> vastuolu.<br />

m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Arvu kanooniline kuju<br />

Näiteks:<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Iga naturaalarvu n saab esitada kujul<br />

n = p α1<br />

1 pα2<br />

2 ···pαk<br />

k<br />

Siin on p1,p2,··· ,pk kõik algarvud, millega n jagub, ning<br />

α1,α2,··· ,αk nende algarvude kordsused.<br />

Aritm<strong>ee</strong>tika põhiteor<strong>ee</strong>mist järeldub, et s<strong>ee</strong> esitus on ühene.<br />

Seda esitust nimetatakse naturaalarvu n kanooniliseks kujuks.<br />

600 = 2 3 · 3 · 5 2 ,<br />

35 = 5 · 7,<br />

5 251 400 = 2 3 · 5 2 · 7 · 11 2 · 31<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Tegurite kanooniline kuju<br />

Teor<strong>ee</strong>m<br />

Olgu n naturaalarv kanoonilise kujuga<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

n = p α1<br />

1 pα2<br />

2 ···pαk<br />

k<br />

Naturaalarv m on arvu n tegur parajasti siis, kui m avaldub kujul<br />

kus iga i ∈ [k] korral 0 βi αi.<br />

m = p β1<br />

1 pβ2<br />

2 ···pβk<br />

k<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Arvu tegurite arv<br />

Näide<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Arvu kanoonilise kuju põhjal saab leida arvu tegurite arvu ilma<br />

neid välja kirjutamata.<br />

Kui<br />

n = p α1<br />

1 pα2<br />

2 ···pαk<br />

k ,<br />

siis arvu n teguris peab algteguri p1 astendaja olema üks<br />

arvudest 0,1,··· ,α1, algteguri p2 astendaja olema üks<br />

arvudest 0,1,··· ,α2 jne.<br />

Tegurite arv on s<strong>ee</strong>ga<br />

(α1 + 1)(α2 + 1)···(αk + 1)<br />

Arvul 694 575 = 3 4 · 5 2 · 7 3 on (4 + 1)(2 + 1)(3 + 1) = 60 tegurit.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Järgmine punkt<br />

1 Kord- ja algarvud<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

2 Suurim ühistegur<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

3 Moodularitm<strong>ee</strong>tika<br />

4 Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Fermat’ väike teor<strong>ee</strong>m (Teor<strong>ee</strong>m 6.5.1.)<br />

Teor<strong>ee</strong>m<br />

Kui p on algarv, siis iga täisarvu a korral, mis ei jagu<br />

p-ga, kehtib seos<br />

p|a p−1 − 1<br />

Lemma 6.2.5.<br />

Kui p on algarv ja 0 < k < p, siis p| p<br />

k<br />

Tõestuse id<strong>ee</strong>. Järeldus seosest<br />

<br />

p<br />

=<br />

k<br />

p(p − 1)···(p − k + 1)<br />

k(k − 1)···1<br />

Pierre de<br />

Fermat<br />

(1601–1665)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Teor<strong>ee</strong>mi teine kuju<br />

Järeldus<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kui p on algarv, siis iga täisarvu a korral p|a p − a.<br />

Tõestus.<br />

Kui a ei jagu p-ga, siis p|a p−1 − 1 kehtib parajasti siis, kui p|(a p−1 − 1)a<br />

Seos kehtib triviaalselt, kui a = 0. Tõestamaks induktsiooniga võtame a > 0<br />

korral a = b + 1. järelikult<br />

a p − a = (b + 1) p − (b + 1) =<br />

= b p <br />

p<br />

+ b<br />

1<br />

p−1 <br />

p<br />

+ ··· + b + 1 − b − 1 =<br />

p − 1<br />

= (b p <br />

p<br />

− b) + b<br />

1<br />

p−1 <br />

p<br />

+ ··· + b<br />

p − 1<br />

Liige (b p − b) jagub p-ga induktsiooni <strong>ee</strong>lduse põhjal, ülejäänud liikmed Lemma 6.5.2<br />

tõttu. m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Pseudoalgarvud<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Fermat’ teor<strong>ee</strong>mi väide võib mõnikord kehtida ka siis, kui p ei<br />

ole algarv.<br />

Näiteks olgu p = 341 = 11 · 31 ning a = 2:<br />

2 340 = (2 10 ) 34 = 1024 34<br />

annab 341-ga jagamisel jäägi 1, sest 1024 annab jäägi 1.<br />

Arv 341 on pseudoalgarv alusel 2.<br />

Siiski, 341 ei rahulda Fermat’ teor<strong>ee</strong>mi väidet, kui aluseks<br />

võtta mingi muu arv, nt 3 340 annab 341-ga jagades jäägi 56.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Carmichaeli arvud<br />

Definitsioon<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Carmichaeli arv on paaritu kordarv, mis rahuldab Fermat’ teor<strong>ee</strong>mi<br />

väidet iga aluse korral, mis on selle kordarvuga ühistegurita (st on<br />

pseudoalgarv kõigil neil alustel).<br />

Näide: olgu p = 561 = 3 · 11 · 17 ning SÜT(a,p) = 1.<br />

a 560 = (a 2 ) 280 annab 3-ga jagamisel jäägi 1<br />

a 560 = (a 10 ) 56 annab 11-ga jagamisel jäägi 1<br />

a 560 = (a 16 ) 35 annab 17-ga jagamisel jäägi 1<br />

S<strong>ee</strong>ga a 560 − 1 jagub nii 3-ga, 11-ga kui 17-ga.<br />

Vt ka http://www.research.att.com/~njas/sequences, jada nr A002997<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Järgmine punkt<br />

1 Kord- ja algarvud<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

2 Suurim ühistegur<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

3 Moodularitm<strong>ee</strong>tika<br />

4 Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Suurim ühistegur<br />

Definitsioon<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Naturaalarvude a ja b ühisteguriks nimetatakse iga naturaalarvu,<br />

millega jagub nii a kui ka b.<br />

Ühistegurite hulgast suurimat tähistatakse SÜT(a,b) (=Suurim<br />

ÜhisTegur) või gcd(a,b) (= Greatest Common Divisor)<br />

Näide<br />

Arvude 36 ja 60 teguriteks on 1, 2, 3, 4, 6, 12.<br />

Suurim ühistegur on SÜT(36,60) = gcd(36,60) = 12.<br />

Suurim ühistegur on alati olemas, sest iga kahe arvu<br />

ühistegurite hulk on mittetühi.<br />

Analoogiliselt defin<strong>ee</strong>ritakse mitme arvu a1,a2,...,an ühistegur<br />

ja nende arvude suurim ühistegur.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Suurim ühistegur<br />

Definitsioon<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Naturaalarvude a ja b ühisteguriks nimetatakse iga naturaalarvu,<br />

millega jagub nii a kui ka b.<br />

Ühistegurite hulgast suurimat tähistatakse SÜT(a,b) (=Suurim<br />

ÜhisTegur) või gcd(a,b) (= Greatest Common Divisor)<br />

Näide<br />

Arvude 36 ja 60 teguriteks on 1, 2, 3, 4, 6, 12.<br />

Suurim ühistegur on SÜT(36,60) = gcd(36,60) = 12.<br />

Suurim ühistegur on alati olemas, sest iga kahe arvu<br />

ühistegurite hulk on mittetühi.<br />

Analoogiliselt defin<strong>ee</strong>ritakse mitme arvu a1,a2,...,an ühistegur<br />

ja nende arvude suurim ühistegur.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Ühistegurita arvud<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Naturaalarve, mille suurim ühistegur on 1, nimetatakse ühistegurita<br />

arvudeks.<br />

Näiteks<br />

16 ja 25 on ühistegurita,<br />

99 ja 100 on ühistegurita<br />

jne.<br />

Jagades naturaalarvud a ja b nende suurima ühisteguriga,<br />

jäävad järele ühistegurita arvud:<br />

<br />

gcd<br />

a<br />

gcd(a,b) ,<br />

<br />

b<br />

gcd(a,b)<br />

= 1<br />

Iga kaks naturaalarvu a ja b saab esitada kujul a = a ′ d ja<br />

b = b ′ d, kus d = gcd(a,b) ning a ′ ja b ′ on ühistegurita.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Ühistegurita arvud<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Naturaalarve, mille suurim ühistegur on 1, nimetatakse ühistegurita<br />

arvudeks.<br />

Näiteks<br />

16 ja 25 on ühistegurita,<br />

99 ja 100 on ühistegurita<br />

jne.<br />

Jagades naturaalarvud a ja b nende suurima ühisteguriga,<br />

jäävad järele ühistegurita arvud:<br />

<br />

gcd<br />

a<br />

gcd(a,b) ,<br />

<br />

b<br />

gcd(a,b)<br />

= 1<br />

Iga kaks naturaalarvu a ja b saab esitada kujul a = a ′ d ja<br />

b = b ′ d, kus d = gcd(a,b) ning a ′ ja b ′ on ühistegurita.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Ühistegurita arvud<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Naturaalarve, mille suurim ühistegur on 1, nimetatakse ühistegurita<br />

arvudeks.<br />

Näiteks<br />

16 ja 25 on ühistegurita,<br />

99 ja 100 on ühistegurita<br />

jne.<br />

Jagades naturaalarvud a ja b nende suurima ühisteguriga,<br />

jäävad järele ühistegurita arvud:<br />

<br />

gcd<br />

a<br />

gcd(a,b) ,<br />

<br />

b<br />

gcd(a,b)<br />

= 1<br />

Iga kaks naturaalarvu a ja b saab esitada kujul a = a ′ d ja<br />

b = b ′ d, kus d = gcd(a,b) ning a ′ ja b ′ on ühistegurita.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Ühistegur kanoonilise kuju järgi<br />

Kui<br />

ja<br />

siis<br />

Järeldus<br />

gcd(a,b) = p min(α1,β1)<br />

1<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

a = p α1<br />

1 pα2<br />

2 ···pαk<br />

k<br />

b = p β1<br />

1 pβ2<br />

2 ···pβk<br />

k<br />

p min(α2,β2)<br />

2 ···p min(αk,βk)<br />

k<br />

gcd(a,b) jagub arvude a ja b iga ühisteguriga.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Ühistegur kanoonilise kuju järgi<br />

Kui<br />

ja<br />

siis<br />

Järeldus<br />

gcd(a,b) = p min(α1,β1)<br />

1<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

a = p α1<br />

1 pα2<br />

2 ···pαk<br />

k<br />

b = p β1<br />

1 pβ2<br />

2 ···pβk<br />

k<br />

p min(α2,β2)<br />

2 ···p min(αk,βk)<br />

k<br />

gcd(a,b) jagub arvude a ja b iga ühisteguriga.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Alternatiivne definitsioon<br />

Definitsioon<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Naturaalarvude a ja b suurim ühistegur gcd(a,b) on selline<br />

naturaalarv, mis jagub kõigi nende arvude ühisteguritega.<br />

Selline lähenemine võimaldab ühisteguri mõistet laiendada ka<br />

sellistele hulkadele, kus on määratud jaguvus, aga mitte<br />

järjestus (nt polünoomid, Gaussi täisarvud jne).<br />

K<strong>ee</strong>rulisemaks muutub suurima ühisteguri olemasolu<br />

tõestamine: kõigi ühisteguritega jaguva ühisteguri leidumine<br />

pole sellise definitsiooni korral nii vahetult selge.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Järgmine punkt<br />

1 Kord- ja algarvud<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

2 Suurim ühistegur<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

3 Moodularitm<strong>ee</strong>tika<br />

4 Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Suurima ühisteguri homog<strong>ee</strong>nsus<br />

Teor<strong>ee</strong>m<br />

Iga naturaalarvu n korral<br />

Tõestus.<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

gcd(na,nb) = n · gcd(a,b)<br />

Olgu a = p α1<br />

1 ···pα k<br />

k ja b = p β1<br />

1 ···pβ k<br />

k ning nende suurim ühistegur<br />

gcd(a,b) = p γ1<br />

1 ···pγ k<br />

k , kus γi = min(αi,βi). Kuin = p σ1<br />

1 ···pσ k<br />

k , siis<br />

gcd(na,nb) = p min(α1+σ1,β1+σ1)<br />

1<br />

···p min(αk +σk ,βk +σk )<br />

k<br />

=<br />

= p min(α1,β1)<br />

1 p σ1<br />

1 ···pmin(α k ,βk )<br />

k p σk k =<br />

= p σ1<br />

1 ···pσ k<br />

k pγ1<br />

1 ···pγ k<br />

k<br />

= n · gcd(a,b)<br />

m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Suurima ühisteguri homog<strong>ee</strong>nsus (1)<br />

Järeldus<br />

Kui c on arvude a ja b ühistegur, siis<br />

<br />

gcd<br />

a b<br />

,<br />

c c<br />

= gcd(a,b)<br />

c<br />

Tõestus.<br />

<br />

c · gcd<br />

a b<br />

,<br />

c c<br />

= gcd(a,b)<br />

m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Ühistegurita arvude omadused<br />

Teor<strong>ee</strong>m<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Kui gcd(a,b) = 1, siis iga naturaalarvu c korral<br />

Tõestuse id<strong>ee</strong>.<br />

gcd(ac,b) = gcd(c,b).<br />

1 arvu gcd(ac,b) iga tegur on ka arvu gcd(c,b)<br />

tegur<br />

2 arvu gcd(c,b) iga tegur on ka arvu gcd(ac,b)<br />

tegur<br />

Järelikult ühtib arvude ac ja b ühistegurite hulk<br />

arvude c ja b ühistegurite hulgaga. m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Järeldusi<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

1 Kui gcd(a,c) = 1 ja gcd(b,c) = 1, siis gcd(ab,c) = 1<br />

2 Kui a|bc ja gcd(a,b) = 1, siis a|c<br />

3 Kui a|c, b|c ja gcd(a,b) = 1, siis ab|c<br />

Näide: leida gcd(560,315)<br />

gcd(560,315) = gcd(5 · 112,5 · 63) =<br />

= 5 · gcd(112,63) =<br />

= 5 · gcd(2 4 · 7,63) =<br />

= 5 · gcd(7,63)<br />

= 5 · 7 = 35<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Järeldusi<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

1 Kui gcd(a,c) = 1 ja gcd(b,c) = 1, siis gcd(ab,c) = 1<br />

2 Kui a|bc ja gcd(a,b) = 1, siis a|c<br />

3 Kui a|c, b|c ja gcd(a,b) = 1, siis ab|c<br />

Näide: leida gcd(560,315)<br />

gcd(560,315) = gcd(5 · 112,5 · 63) =<br />

= 5 · gcd(112,63) =<br />

= 5 · gcd(2 4 · 7,63) =<br />

= 5 · gcd(7,63)<br />

= 5 · 7 = 35<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Järgmine punkt<br />

1 Kord- ja algarvud<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

2 Suurim ühistegur<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

3 Moodularitm<strong>ee</strong>tika<br />

4 Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Eukleidese algoritm<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Algoritm kahe arvu suurima ühisteguri arvutamiseks<br />

Sisend: Naturaalarvud a ja b, <strong>ee</strong>ldame, et a > b<br />

Väljund: Arvude a ja b suurim ühiskordne<br />

while b > 0<br />

do<br />

od<br />

1 r := a mod b % a jagamisel b-ga tekkiv jääk<br />

2 a := b<br />

3 b := r<br />

return(a)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näide: leida gcd(2322,654)<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

a b<br />

2322 654<br />

654 360<br />

360 294<br />

294 66<br />

66 30<br />

30 6<br />

6 0<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näide: leida gcd(2322,654)<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

a b<br />

2322 654<br />

654 360<br />

360 294<br />

294 66<br />

66 30<br />

30 6<br />

6 0<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näide: leida gcd(2322,654)<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

a b<br />

2322 654<br />

654 360<br />

360 294<br />

294 66<br />

66 30<br />

30 6<br />

6 0<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näide: leida gcd(2322,654)<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

a b<br />

2322 654<br />

654 360<br />

360 294<br />

294 66<br />

66 30<br />

30 6<br />

6 0<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näide: leida gcd(2322,654)<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

a b<br />

2322 654<br />

654 360<br />

360 294<br />

294 66<br />

66 30<br />

30 6<br />

6 0<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näide: leida gcd(2322,654)<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

a b<br />

2322 654<br />

654 360<br />

360 294<br />

294 66<br />

66 30<br />

30 6<br />

6 0<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näide: leida gcd(2322,654)<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

a b<br />

2322 654<br />

654 360<br />

360 294<br />

294 66<br />

66 30<br />

30 6<br />

6 0<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näide: leida gcd(2322,654)<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

a b<br />

2322 654<br />

654 360<br />

360 294<br />

294 66<br />

66 30<br />

30 6<br />

6 0<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Olulised küsimused vastata:<br />

Kas algoritm lõpetab alati töö?<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Kas algoritm annab alati vastuseks suurima ühisteguri?<br />

Milline on algoritmi efektiivsus?<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Eukleidese algoritmi peatumine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Igal sammul asendatakse arvupaar (a,b) paariga (b,r), kus r<br />

on jääk, mis tekib a jagamisel b-ga.<br />

Järelikult r < b.<br />

Samme korrates väheneb vaadeldava arvupaari teine<br />

komponent ning saab varem või hiljem nulliks.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Eukleidese algoritmi korrektsus<br />

Teor<strong>ee</strong>m<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Kui r on jääk, mis tekib arvu a jagamisel arvuga b, siis<br />

gcd(a,b) = gcd(b,r)<br />

Tõestus. Võrdusest a = bq + r järeldub, et<br />

1 kui d|a ja d|b, siis d|r<br />

2 kui d|b ja d|r, siis d|a<br />

Järelikult on arvude a ja b ühistegurite hulk sama mis<br />

arvude b ja r ühistegurite hulk.<br />

Viimasel sammul saame arvud r ja 0, nende suurim<br />

ühistegur on r . m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Eukleidese algoritmi k<strong>ee</strong>rukus<br />

Teor<strong>ee</strong>m 6.6.2<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Arvude a ja b (kus a > b) suurima ühisteguri leidmiseks kulub<br />

Eukleidese algoritmi puhul ülimalt<br />

sammu.<br />

1 + log 2 a + log 2 b<br />

Tõestus. Ühe sammuga asendatakse arvupaar (a,b) paariga (b,r). S<strong>ee</strong>juures<br />

r < b and b + r a. Järelikult 2r < r + b a või br < ab/2. ehk ühel<br />

sammul väheneb arvude korrutis vähemalt 2 korda.<br />

Kui pärast k sammu on korrutis v<strong>ee</strong>l positiivne, siis peab kehtima<br />

ab/2 k > 1, millest<br />

k log 2(ab) = log 2 a + log 2 b<br />

m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Eukleidese algoritmi töö algebraliselt<br />

a = bq1 + r1<br />

b = r1q2 + r2<br />

r1 avaldub b ja a kaudu<br />

r2 avaldub r1 ja b kaudu<br />

r1 = r2q3 + r3<br />

············ ············<br />

rk−3 = rk−2qk−1 + rk−1<br />

rk−2 = rk−1qk + rk<br />

rk−1 = rkqk+1<br />

r3 avaldub r2 ja r1 kaudu<br />

rk−1 avaldub rk−2 ja rk−3 kaudu<br />

rk avaldub rk−1 ja rk−2 kaudu<br />

Avaldame <strong>ee</strong>lviimasest seosest rk ja asendame saadud avaldises<br />

järk-järgult rk−1,rk−2,... <strong>ee</strong>lnevate seoste põhjal.<br />

Järelikult rk avaldub a ja b lineaarkombinatsioonina. (Täisarvuliste<br />

kordajatega!)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Suurim ühistegur lineaarkombinatsioonina<br />

Teor<strong>ee</strong>m 6.6.3<br />

Naturaalarvude a ja b suurima ühisteguri saab avaldada kujul<br />

kus s ja t on täisarvud.<br />

Näiteks: a = 360 ja b = 294<br />

gcd(a,b) = as + bt<br />

gcd(a,b) = 294 · (−11) + 360 · 9 = −11a + 9b<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Lineaarne diofantiline võrrand (EA rakendus)<br />

Järeldus teor<strong>ee</strong>mist 6.6.3<br />

Täisarvuliste kordajatega võrrandil<br />

ax + by = c<br />

leiduvad täisarvulised lahendid parajasti siis, kui gcd(a,b)|c.<br />

Lahendusm<strong>ee</strong>tod: Eukleidese algoritmi abil leida kordajad s ja t, nii<br />

et sa + tb = gcd(a,b) ning s<strong>ee</strong>järel arvutada võrrandi<br />

lahendid<br />

cs<br />

x =<br />

y =<br />

gcd(a,b)<br />

ct<br />

gcd(a,b)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Lineaarne diofantiline võrrand (2)<br />

Näide: 92x + 17y = 3<br />

Eukleidese algoritmst:<br />

a b Seos<br />

92 17<br />

17 7 92 = 5 · 17 + 7<br />

7 3 17 = 2 · 7 + 3<br />

3 1 7 = 2 · 3 + 1<br />

1 0<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Vastavad teisendused:<br />

1 = 7 − 2 · 3<br />

gcd(92,7)|3, s<strong>ee</strong>ga võrrandi lahenditeks sobivad väärtused<br />

x =<br />

y =<br />

= 7 − 2 · (17 − 7 · 2) = (−2) · 17 + 5 · 7 =<br />

= (−2) · 17 + 5 · (92 − 5 · 17) = 5 · 92 + (−27) · 17<br />

3 · 5<br />

= 3 · 5 = 15<br />

gcd(92,17)<br />

3 · (−27)<br />

= −3 · 27 = −81<br />

gcd(92,17)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Lineaarne diofantiline võrrand (3)<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Näide: 5x + 3y = 2 → lahendeid võib olla mitu<br />

Kuna 1 = 2 · 5 + 3 · 3, siis esimene lahend<br />

on:<br />

x = 2 · 2 = 4<br />

y = −3 · 2 = −6<br />

gcd(5,3) = 1<br />

Näide: 15x + 9y = 8 → lahendid puuduvad<br />

Kuna gcd(15,9) = 3, siis saab võrrandi teisendada kujule<br />

3(5x + 3y) = 8.<br />

Kuna 1 = (−10) · 5 + 17 · 3, siis teine<br />

lahend on:<br />

x = −10 · 2 = −20<br />

y = 17 · 2 = 34<br />

Võrrandi vasak pool jagub 3-ga ja parem pool ei jagu, järelikult s<strong>ee</strong> võrdus ei saa<br />

kehtida ühegi x ja y väärtuste korral.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Lineaarne diofantiline võrrand (3)<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Näide: 5x + 3y = 2 → lahendeid võib olla mitu<br />

Kuna 1 = 2 · 5 + 3 · 3, siis esimene lahend<br />

on:<br />

x = 2 · 2 = 4<br />

y = −3 · 2 = −6<br />

gcd(5,3) = 1<br />

Näide: 15x + 9y = 8 → lahendid puuduvad<br />

Kuna gcd(15,9) = 3, siis saab võrrandi teisendada kujule<br />

3(5x + 3y) = 8.<br />

Kuna 1 = (−10) · 5 + 17 · 3, siis teine<br />

lahend on:<br />

x = −10 · 2 = −20<br />

y = 17 · 2 = 34<br />

Võrrandi vasak pool jagub 3-ga ja parem pool ei jagu, järelikult s<strong>ee</strong> võrdus ei saa<br />

kehtida ühegi x ja y väärtuste korral.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


V<strong>ee</strong>l üks EA rakendus<br />

Aritm<strong>ee</strong>tika põhiteor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Iga positiivne täisarv n on üheselt esitatav algarvude korrutisena:<br />

m<br />

n = p1 ...pm = ∏ pk, p1 ··· pm<br />

k=1<br />

Tõestus. Eeldame vastuväiteliselt, et mingil arvul on kaks lahutust<br />

algteguriteks:<br />

n = p1 ...pm = q1 ...qk, p1 ··· pm ja q1 ··· qk<br />

Eeldame, et p1 < q1. Kuna p1 ja q1 on algarvud, siis gcd(p1,q1) = 1.<br />

S<strong>ee</strong>ga annab EA täisarvud s ja t, nii et sp1 + tq1 = 1. Järelikult<br />

sp1q2 ...qk + tq1q2 ...qk = q2 ...qk<br />

S<strong>ee</strong>ga jagab p1 mõlemaid vasaku poole avaldisi ja q2 ...qk/p1 on<br />

täisarv, mis on vastuolus <strong>ee</strong>ldusega p1 < q1. S<strong>ee</strong> tähendab, et<br />

p1 = q1.<br />

Induktiivselt saame sama võttega tõestada, et p2 = q2, p3 = q3, etc<br />

m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Vähim ühiskordne<br />

Definitsioon<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Naturaalarvude a ja b ühiskordseks nimetatakse iga naturaalarvu c,<br />

mis jagub nii a-ga kui ka b-ga, teisete sõnadega c|a ja c|b.<br />

Naturaalarvude a ja b vähimat ühiskordset tähistatakse VÜK(a,b)<br />

(=Vähim ÜhisKordne) või lcm(a,b) (= Least Common Multiple)<br />

lcm(6,4) = 12 lcm(8,1) = 8 lcm(24,25) = 600<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Vähim ühiskordne kanoonilise kuju järgi<br />

Kui<br />

ja<br />

siis<br />

Järeldus<br />

gcd(a,b)lcm(a,b) = ab<br />

Tõestus.<br />

lcm(a,b) = p max(α1,β1)<br />

1<br />

a = p α1<br />

1 pα2<br />

2 ···pα k<br />

k<br />

b = p β1<br />

1 pβ2<br />

2 ···pβ k<br />

k<br />

p max(α2,β2)<br />

gcd(a,b) · lcm(a,b) = p min(α1,β1)<br />

1<br />

2<br />

···p max(α k ,β k )<br />

k<br />

···p min(α k ,β k )<br />

k<br />

= p min(α1,β1)+max(α1,β1)<br />

1<br />

= p α1+β1<br />

1 ···p αk +βk k = ab<br />

p max(α1,β1)<br />

1 ···p max(αk ,βk )<br />

k =<br />

···p min(αk ,βk )+max(αk ,βk )<br />

k<br />

=<br />

m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Vähim ühiskordne kanoonilise kuju järgi<br />

Kui<br />

ja<br />

siis<br />

Järeldus<br />

gcd(a,b)lcm(a,b) = ab<br />

Tõestus.<br />

lcm(a,b) = p max(α1,β1)<br />

1<br />

a = p α1<br />

1 pα2<br />

2 ···pα k<br />

k<br />

b = p β1<br />

1 pβ2<br />

2 ···pβ k<br />

k<br />

p max(α2,β2)<br />

gcd(a,b) · lcm(a,b) = p min(α1,β1)<br />

1<br />

2<br />

···p max(α k ,β k )<br />

k<br />

···p min(α k ,β k )<br />

k<br />

= p min(α1,β1)+max(α1,β1)<br />

1<br />

= p α1+β1<br />

1 ···p αk +βk k = ab<br />

p max(α1,β1)<br />

1 ···p max(αk ,βk )<br />

k =<br />

···p min(αk ,βk )+max(αk ,βk )<br />

k<br />

=<br />

m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Suurim ühistegur ja väikseim ühiskordne<br />

Teor<strong>ee</strong>m<br />

Suurim ühistegur ja vähim ühiskordne on duaalsed mõisted.<br />

Seose gcd(a,b) · lcm(a,b) = ab tõttu kandubvad mitmed suurima<br />

ühisteguri omadused vähimale ühiskordsele.<br />

Vähima ühisteguri leidmiseks sobib Eukleidese algoritm.<br />

Arvude a ja b vähim ühiskordne on nende arvude iga ühiskordse tegur.<br />

Tõestus.<br />

Olgu k arvude a ja b mingi ühiskordne. Suurima ühisteguri homog<strong>ee</strong>nsusest järeldub<br />

ab · gcd<br />

k<br />

a<br />

, k<br />

b<br />

<br />

= gcd(kb,ka) = k · gcd(b,a).<br />

S<strong>ee</strong>ga<br />

<br />

k k<br />

<br />

ab · gcd , · lcm(a,b) = k · gcd(a,b) · lcm(a,b) = kab.<br />

a b<br />

Järelikult gcd k<br />

a , k <br />

b · lcm(a,b) = k ehk lcm(a,b) on k tegur. m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Suurim ühistegur ja väikseim ühiskordne<br />

Teor<strong>ee</strong>m<br />

Suurim ühistegur ja vähim ühiskordne on duaalsed mõisted.<br />

Seose gcd(a,b) · lcm(a,b) = ab tõttu kandubvad mitmed suurima<br />

ühisteguri omadused vähimale ühiskordsele.<br />

Vähima ühisteguri leidmiseks sobib Eukleidese algoritm.<br />

Arvude a ja b vähim ühiskordne on nende arvude iga ühiskordse tegur.<br />

Tõestus.<br />

Olgu k arvude a ja b mingi ühiskordne. Suurima ühisteguri homog<strong>ee</strong>nsusest järeldub<br />

ab · gcd<br />

k<br />

a<br />

, k<br />

b<br />

<br />

= gcd(kb,ka) = k · gcd(b,a).<br />

S<strong>ee</strong>ga<br />

<br />

k k<br />

<br />

ab · gcd , · lcm(a,b) = k · gcd(a,b) · lcm(a,b) = kab.<br />

a b<br />

Järelikult gcd k<br />

a , k <br />

b · lcm(a,b) = k ehk lcm(a,b) on k tegur. m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Vähima ühiskordse homog<strong>ee</strong>nsus<br />

Teor<strong>ee</strong>m<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Iga naturaalarvu n korral lcm(na,nb) = n · lcm(a,b).<br />

Tõestus. Suurima ühisteguri ja vähima ühiskordse seosest saame<br />

lcm(na,nb) · gcd(na,nb) = n 2 ab. Teisendades seda seost suurima<br />

ühisteguri homog<strong>ee</strong>nsust arvestades, saame<br />

lcm(na,nb) · n · gcd(a,b) = n 2 ab ning sellest omakorda<br />

lcm(na,nb) · gcd(a,b) = nab<br />

Võttes arvesse, et suurima ühisteguri ja vähima ühiskordse seosest<br />

järeldub ka seos lcm(a,b) = ab/gcd(a,b), jõuame tulemuseni<br />

lcm(na,nb) =<br />

Järeldus<br />

<br />

ac Kui c|a ja c|b, siis lcm , b <br />

c = lcm(a,b)<br />

c .<br />

nab<br />

= n · lcm(a,b)<br />

gcd(a,b)<br />

m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Vähima ühiskordse homog<strong>ee</strong>nsus<br />

Teor<strong>ee</strong>m<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

Iga naturaalarvu n korral lcm(na,nb) = n · lcm(a,b).<br />

Tõestus. Suurima ühisteguri ja vähima ühiskordse seosest saame<br />

lcm(na,nb) · gcd(na,nb) = n 2 ab. Teisendades seda seost suurima<br />

ühisteguri homog<strong>ee</strong>nsust arvestades, saame<br />

lcm(na,nb) · n · gcd(a,b) = n 2 ab ning sellest omakorda<br />

lcm(na,nb) · gcd(a,b) = nab<br />

Võttes arvesse, et suurima ühisteguri ja vähima ühiskordse seosest<br />

järeldub ka seos lcm(a,b) = ab/gcd(a,b), jõuame tulemuseni<br />

lcm(na,nb) =<br />

Järeldus<br />

<br />

ac Kui c|a ja c|b, siis lcm , b <br />

c = lcm(a,b)<br />

c .<br />

nab<br />

= n · lcm(a,b)<br />

gcd(a,b)<br />

m.o.t.t.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kongruentsid<br />

Definitsioon<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Täisarvud a ja b on kongruentsed mooduli m > 0 järgi, kui nad<br />

annavad jagamisel m-ga sama jäägi. Tähistus a ≡ b (mod m).<br />

Alternatiivne definitsioon: a ≡ b (mod m) parajasti siis, kui<br />

m|(b − a). Kongruents on ekvivalentsiseos:<br />

Refleksiivsus: a ≡ a (mod m)<br />

Sümm<strong>ee</strong>tria: a ≡ b (mod m) ⇒ b ≡ a (mod m)<br />

Transitiivsus: a ≡ b (mod m) ja b ≡ c (mod m) ⇒ a ≡ c (mod m)<br />

[0] [1]<br />

[2]<br />

[3] [4]<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kongruentsi omadusi<br />

Kui a ≡ b (mod m) ja d|m, siis a ≡ b (mod d)<br />

Kui a ≡ b (mod m1),a ≡ b (mod m2),...,a ≡ b (mod mk), siis<br />

a ≡ b (mod lcm(m1,m2,...,mk))<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a + c ≡ b + d (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis ac ≡ bd (mod m)<br />

Kui a ≡ b (mod m), siis suvalise täisarvu k korral ak ≡ bk (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a − c ≡ b − d (mod m)<br />

Kui a ≡ b (mod m), siis suvaliste täisarvude u ja v korral<br />

a + um ≡ b + vm (mod m)<br />

Kui ka ≡ kb (mod m) ja gcd(k,m) = 1, siis a ≡ b (mod m)<br />

a ≡ b (mod m) parajasti siis, kui suvalise naturaalarvu k korral<br />

ak ≡ bk (mod mk)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kongruentsi omadusi<br />

Kui a ≡ b (mod m) ja d|m, siis a ≡ b (mod d)<br />

Kui a ≡ b (mod m1),a ≡ b (mod m2),...,a ≡ b (mod mk), siis<br />

a ≡ b (mod lcm(m1,m2,...,mk))<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a + c ≡ b + d (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis ac ≡ bd (mod m)<br />

Kui a ≡ b (mod m), siis suvalise täisarvu k korral ak ≡ bk (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a − c ≡ b − d (mod m)<br />

Kui a ≡ b (mod m), siis suvaliste täisarvude u ja v korral<br />

a + um ≡ b + vm (mod m)<br />

Kui ka ≡ kb (mod m) ja gcd(k,m) = 1, siis a ≡ b (mod m)<br />

a ≡ b (mod m) parajasti siis, kui suvalise naturaalarvu k korral<br />

ak ≡ bk (mod mk)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kongruentsi omadusi<br />

Kui a ≡ b (mod m) ja d|m, siis a ≡ b (mod d)<br />

Kui a ≡ b (mod m1),a ≡ b (mod m2),...,a ≡ b (mod mk), siis<br />

a ≡ b (mod lcm(m1,m2,...,mk))<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a + c ≡ b + d (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis ac ≡ bd (mod m)<br />

Kui a ≡ b (mod m), siis suvalise täisarvu k korral ak ≡ bk (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a − c ≡ b − d (mod m)<br />

Kui a ≡ b (mod m), siis suvaliste täisarvude u ja v korral<br />

a + um ≡ b + vm (mod m)<br />

Kui ka ≡ kb (mod m) ja gcd(k,m) = 1, siis a ≡ b (mod m)<br />

a ≡ b (mod m) parajasti siis, kui suvalise naturaalarvu k korral<br />

ak ≡ bk (mod mk)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kongruentsi omadusi<br />

Kui a ≡ b (mod m) ja d|m, siis a ≡ b (mod d)<br />

Kui a ≡ b (mod m1),a ≡ b (mod m2),...,a ≡ b (mod mk), siis<br />

a ≡ b (mod lcm(m1,m2,...,mk))<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a + c ≡ b + d (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis ac ≡ bd (mod m)<br />

Kui a ≡ b (mod m), siis suvalise täisarvu k korral ak ≡ bk (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a − c ≡ b − d (mod m)<br />

Kui a ≡ b (mod m), siis suvaliste täisarvude u ja v korral<br />

a + um ≡ b + vm (mod m)<br />

Kui ka ≡ kb (mod m) ja gcd(k,m) = 1, siis a ≡ b (mod m)<br />

a ≡ b (mod m) parajasti siis, kui suvalise naturaalarvu k korral<br />

ak ≡ bk (mod mk)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kongruentsi omadusi<br />

Kui a ≡ b (mod m) ja d|m, siis a ≡ b (mod d)<br />

Kui a ≡ b (mod m1),a ≡ b (mod m2),...,a ≡ b (mod mk), siis<br />

a ≡ b (mod lcm(m1,m2,...,mk))<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a + c ≡ b + d (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis ac ≡ bd (mod m)<br />

Kui a ≡ b (mod m), siis suvalise täisarvu k korral ak ≡ bk (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a − c ≡ b − d (mod m)<br />

Kui a ≡ b (mod m), siis suvaliste täisarvude u ja v korral<br />

a + um ≡ b + vm (mod m)<br />

Kui ka ≡ kb (mod m) ja gcd(k,m) = 1, siis a ≡ b (mod m)<br />

a ≡ b (mod m) parajasti siis, kui suvalise naturaalarvu k korral<br />

ak ≡ bk (mod mk)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kongruentsi omadusi<br />

Kui a ≡ b (mod m) ja d|m, siis a ≡ b (mod d)<br />

Kui a ≡ b (mod m1),a ≡ b (mod m2),...,a ≡ b (mod mk), siis<br />

a ≡ b (mod lcm(m1,m2,...,mk))<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a + c ≡ b + d (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis ac ≡ bd (mod m)<br />

Kui a ≡ b (mod m), siis suvalise täisarvu k korral ak ≡ bk (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a − c ≡ b − d (mod m)<br />

Kui a ≡ b (mod m), siis suvaliste täisarvude u ja v korral<br />

a + um ≡ b + vm (mod m)<br />

Kui ka ≡ kb (mod m) ja gcd(k,m) = 1, siis a ≡ b (mod m)<br />

a ≡ b (mod m) parajasti siis, kui suvalise naturaalarvu k korral<br />

ak ≡ bk (mod mk)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kongruentsi omadusi<br />

Kui a ≡ b (mod m) ja d|m, siis a ≡ b (mod d)<br />

Kui a ≡ b (mod m1),a ≡ b (mod m2),...,a ≡ b (mod mk), siis<br />

a ≡ b (mod lcm(m1,m2,...,mk))<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a + c ≡ b + d (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis ac ≡ bd (mod m)<br />

Kui a ≡ b (mod m), siis suvalise täisarvu k korral ak ≡ bk (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a − c ≡ b − d (mod m)<br />

Kui a ≡ b (mod m), siis suvaliste täisarvude u ja v korral<br />

a + um ≡ b + vm (mod m)<br />

Kui ka ≡ kb (mod m) ja gcd(k,m) = 1, siis a ≡ b (mod m)<br />

a ≡ b (mod m) parajasti siis, kui suvalise naturaalarvu k korral<br />

ak ≡ bk (mod mk)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kongruentsi omadusi<br />

Kui a ≡ b (mod m) ja d|m, siis a ≡ b (mod d)<br />

Kui a ≡ b (mod m1),a ≡ b (mod m2),...,a ≡ b (mod mk), siis<br />

a ≡ b (mod lcm(m1,m2,...,mk))<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a + c ≡ b + d (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis ac ≡ bd (mod m)<br />

Kui a ≡ b (mod m), siis suvalise täisarvu k korral ak ≡ bk (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a − c ≡ b − d (mod m)<br />

Kui a ≡ b (mod m), siis suvaliste täisarvude u ja v korral<br />

a + um ≡ b + vm (mod m)<br />

Kui ka ≡ kb (mod m) ja gcd(k,m) = 1, siis a ≡ b (mod m)<br />

a ≡ b (mod m) parajasti siis, kui suvalise naturaalarvu k korral<br />

ak ≡ bk (mod mk)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kongruentsi omadusi<br />

Kui a ≡ b (mod m) ja d|m, siis a ≡ b (mod d)<br />

Kui a ≡ b (mod m1),a ≡ b (mod m2),...,a ≡ b (mod mk), siis<br />

a ≡ b (mod lcm(m1,m2,...,mk))<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a + c ≡ b + d (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis ac ≡ bd (mod m)<br />

Kui a ≡ b (mod m), siis suvalise täisarvu k korral ak ≡ bk (mod m)<br />

Kui a ≡ b (mod m) ja c ≡ d (mod m), siis a − c ≡ b − d (mod m)<br />

Kui a ≡ b (mod m), siis suvaliste täisarvude u ja v korral<br />

a + um ≡ b + vm (mod m)<br />

Kui ka ≡ kb (mod m) ja gcd(k,m) = 1, siis a ≡ b (mod m)<br />

a ≡ b (mod m) parajasti siis, kui suvalise naturaalarvu k korral<br />

ak ≡ bk (mod mk)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näiteid kongruentside kasutamisest<br />

Näide 1: Leida a = 1395 4 · 675 3 + 12 · 17 · 22 jagamisel 7-ga tekkiv jääk<br />

Kuna 1395 ≡ 2 (mod 7), 675 ≡ 3 (mod 7), 12 ≡ 5 (mod 7), 17 ≡ 3 (mod 7) ja<br />

22 ≡ 1 (mod 7), siis<br />

a ≡ 2 4 · 3 3 + 5 · 3 · 1 (mod 7)<br />

Kuna 2 4 = 16 ≡ 2 (mod 7), 3 3 = 27 ≡ 6 (mod 7) ja 5 · 3 · 1 = 15 ≡ 1 (mod 7), siis<br />

a ≡ 2 · 6 + 1 = 13 ≡ 6 (mod 7)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näiteid kongruentside kasutamisest<br />

Näide 2: Leida a = 53 · 47 · 51 · 43 jagamisel 56-ga tekkiv jääk<br />

A. Kuna 53 · 47 = 2491 ≡ 27 (mod 56) ja 51 · 43 = 2193 ≡ 9 (mod 56),<br />

siis<br />

a ≡ 27 · 9 = 243 ≡ 19 (mod 56)<br />

B. Kuna 53 ≡ −3 (mod 56), 47 ≡ −9 (mod 56), 51 ≡ −5 (mod 56) ja<br />

43 ≡ −13 (mod 56), siis<br />

a ≡ (−3) · (−9) · (−5) · (−13) = 1755 ≡ 19 (mod 56)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näiteid kongruentside kasutamisest<br />

Näide 3: Leida arvu 45 69 jagamisel 89-ga tekkiv jääk<br />

Kasutame nn ruututõstmism<strong>ee</strong>todit:<br />

Kuna 69 = 64 + 4 + 1, siis<br />

45 ≡ 45 (mod 89)<br />

45 2 = 2025 ≡ 67 (mod 89)<br />

45 4 = (45 2 ) 2 ≡ 67 2 = 4489 ≡ 39 (mod 89)<br />

45 8 = (45 4 ) 2 ≡ 39 2 = 1521 ≡ 8 (mod 89)<br />

45 16 = (45 8 ) 2 ≡ 8 2 = 64 ≡ 64 (mod 89)<br />

45 32 = (45 16 ) 2 ≡ 64 2 = 4096 ≡ 2 (mod 89)<br />

45 64 = (45 32 ) 2 ≡ 2 2 = 4 ≡ 4 (mod 89)<br />

45 69 = 45 64 · 45 4 · 45 1 ≡ 4 · 39 · 45 ≡ 7020 ≡ 78 (mod 89)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näiteid kongruentside kasutamisest<br />

Näide 4: Leida jääk, mis tekib arvu 3 4565 jagamisel 13ga<br />

Fermat’ teor<strong>ee</strong>mi põhjal 3 12 ≡ 1 (mod 13). S<strong>ee</strong>pärast jagame astendaja 4565 arvuga<br />

12 ja leiame jäägi: 4565 = 380 · 12 + 5. Järelikult<br />

3 4565 = (3 12 ) 380 3 5 ≡ 1 380 3 5 = 81 · 3 ≡ 3 · 3 = 9 (mod 13)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näiteid kongruentside kasutamisest<br />

Olgu arv n = ak · 10 k + ak−1 · 10 k−1 + ... + a1 · 10 + a0, kus<br />

ai ∈ {0,1,...,9} on arvu kümnendkohad.<br />

Teor<strong>ee</strong>m: Arv n jagub 11-ga parajasti siis, kui 11-ga jagub tema<br />

paarispositsioonide ristsumma ja paaritute positsioonide ristsummma vahet:<br />

11|(a0 + a2 + ...) − (a1 + a3 + ...)<br />

Tõestus.<br />

Kuna 10 ≡ −1 (mod 11), siis iga i korral 10 i ≡ (−1) i (mod 11). Järelikult<br />

n ≡ ak(−1) k + ak−1(−1) k−1 + ... − a1 + a0 =<br />

= (a0 + a2 + ...) − (a1 + a3 + ...) (mod 11) m.o.t.t.<br />

Näide 5: 34425730438 jagub 11-ga<br />

Tõepoolest, kuna 11-ga jagub järgmine avaldis<br />

(8 + 4 + 3 + 5 + 4 + 3) − (3 + 0 + 7 + 2 + 4) = 27 − 16 = 11<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Arvusüst<strong>ee</strong>m "nädalapäevad"<br />

Liitmine:<br />

+○ P E T K N R L<br />

P P E T K N R L<br />

E E T K N R L P<br />

T T K N R L P E<br />

K K N R L P E T<br />

N N R L P E T K<br />

R R L P E T K N<br />

L L P E T K N R<br />

Korrutamine:<br />

⊙ P E T K N R L<br />

P P P P P P P P<br />

E P E T K N R L<br />

T P T N L E K R<br />

K P K L T R E N<br />

N P N E R T L K<br />

R P R K E L N T<br />

L P L R N K T E<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Arvusüst<strong>ee</strong>m "nädalapäevad"<br />

Liitmine:<br />

+○ P E T K N R L<br />

P P E T K N R L<br />

E E T K N R L P<br />

T T K N R L P E<br />

K K N R L P E T<br />

N N R L P E T K<br />

R R L P E T K N<br />

L L P E T K N R<br />

Kommutatiivsus:<br />

T + R = R + T T · R = R · T<br />

Korrutamine:<br />

⊙ P E T K N R L<br />

P P P P P P P P<br />

E P E T K N R L<br />

T P T N L E K R<br />

K P K L T R E N<br />

N P N E R T L K<br />

R P R K E L N T<br />

L P L R N K T E<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Arvusüst<strong>ee</strong>m "nädalapäevad"<br />

Liitmine:<br />

+○ P E T K N R L<br />

P P E T K N R L<br />

E E T K N R L P<br />

T T K N R L P E<br />

K K N R L P E T<br />

N N R L P E T K<br />

R R L P E T K N<br />

L L P E T K N R<br />

Korrutamine:<br />

⊙ P E T K N R L<br />

P P P P P P P P<br />

E P E T K N R L<br />

T P T N L E K R<br />

K P K L T R E N<br />

N P N E R T L K<br />

R P R K E L N T<br />

L P L R N K T E<br />

Assotsiatiivsus:<br />

(E + K) + R = E + (K + R) (E · K) · R = E · (K · R)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Arvusüst<strong>ee</strong>m "nädalapäevad"<br />

Liitmine:<br />

+○ P E T K N R L<br />

P P E T K N R L<br />

E E T K N R L P<br />

T T K N R L P E<br />

K K N R L P E T<br />

N N R L P E T K<br />

R R L P E T K N<br />

L L P E T K N R<br />

Lahutamine on liitmise pöördtehe:<br />

N − K = (E + K) − K = E<br />

Korrutamine:<br />

⊙ P E T K N R L<br />

P P P P P P P P<br />

E P E T K N R L<br />

T P T N L E K R<br />

K P K L T R E N<br />

N P N E R T L K<br />

R P R K E L N T<br />

L P L R N K T E<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Arvusüst<strong>ee</strong>m "nädalapäevad"<br />

Liitmine:<br />

+○ P E T K N R L<br />

P P E T K N R L<br />

E E T K N R L P<br />

T T K N R L P E<br />

K K N R L P E T<br />

N N R L P E T K<br />

R R L P E T K N<br />

L L P E T K N R<br />

P on nullelement:<br />

K + P = K K · P = P<br />

Korrutamine:<br />

⊙ P E T K N R L<br />

P P P P P P P P<br />

E P E T K N R L<br />

T P T N L E K R<br />

K P K L T R E N<br />

N P N E R T L K<br />

R P R K E L N T<br />

L P L R N K T E<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Arvusüst<strong>ee</strong>m "nädalapäevad"<br />

Liitmine:<br />

+○ P E T K N R L<br />

P P E T K N R L<br />

E E T K N R L P<br />

T T K N R L P E<br />

K K N R L P E T<br />

N N R L P E T K<br />

R R L P E T K N<br />

L L P E T K N R<br />

E on ühik:<br />

K · E = K<br />

Korrutamine:<br />

⊙ P E T K N R L<br />

P P P P P P P P<br />

E P E T K N R L<br />

T P T N L E K R<br />

K P K L T R E N<br />

N P N E R T L K<br />

R P R K E L N T<br />

L P L R N K T E<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Moodularitm<strong>ee</strong>tika alusel m<br />

Näited<br />

Arvud on 0,1,...,m − 1, kusjuures a kõiki arve, mis annavad<br />

m-iga jagades jäägi a.<br />

Tehted on defin<strong>ee</strong>ritud<br />

a + b = c parajasti siis, kui a + b ≡ c (mod m)<br />

a · b = c parajasti siis, kui a · b ≡ c (mod m)<br />

"nädalapäevade" aritm<strong>ee</strong>tika, moodul 7<br />

Boole’ algebra, moodul 2<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jagamine moodularitm<strong>ee</strong>tikas<br />

Arvude a ja b jagatis on selline x, et b · x = a, s.o. a/b = x<br />

Näiteks "nädalapäevade aritm<strong>ee</strong>tikas":<br />

E/T = N ja T /E = T .<br />

Arvuga P ei saa jagada, v.a. P/P,<br />

mile väärtuseks on iga arv.<br />

Jagatis a/b on defin<strong>ee</strong>ritud iga b = 0,<br />

kui arvusüst<strong>ee</strong>mi moodul on algarv<br />

⊙ P E T K N R L<br />

P P P P P P P P<br />

E P E T K N R L<br />

T P T N L E K R<br />

K P K L T R E N<br />

N P N E R T L K<br />

R P R K E L N T<br />

L P L R N K T E<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jagamine moodularitm<strong>ee</strong>tikas<br />

Arvude a ja b jagatis on selline x, et b · x = a, s.o. a/b = x<br />

Näiteks "nädalapäevade aritm<strong>ee</strong>tikas":<br />

E/T = N ja T /E = T .<br />

Arvuga P ei saa jagada, v.a. P/P,<br />

mile väärtuseks on iga arv.<br />

Jagatis a/b on defin<strong>ee</strong>ritud iga b = 0,<br />

kui arvusüst<strong>ee</strong>mi moodul on algarv<br />

⊙ P E T K N R L<br />

P P P P P P P P<br />

E P E T K N R L<br />

T P T N L E K R<br />

K P K L T R E N<br />

N P N E R T L K<br />

R P R K E L N T<br />

L P L R N K T E<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jagamine moodularitm<strong>ee</strong>tikas<br />

Arvude a ja b jagatis on selline x, et b · x = a, s.o. a/b = x<br />

Näiteks "nädalapäevade aritm<strong>ee</strong>tikas":<br />

E/T = N ja T /E = T .<br />

Arvuga P ei saa jagada, v.a. P/P,<br />

mile väärtuseks on iga arv.<br />

Jagatis a/b on defin<strong>ee</strong>ritud iga b = 0,<br />

kui arvusüst<strong>ee</strong>mi moodul on algarv<br />

⊙ P E T K N R L<br />

P P P P P P P P<br />

E P E T K N R L<br />

T P T N L E K R<br />

K P K L T R E N<br />

N P N E R T L K<br />

R P R K E L N T<br />

L P L R N K T E<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jagamine moodularitm<strong>ee</strong>tikas<br />

Arvude a ja b jagatis on selline x, et b · x = a, s.o. a/b = x<br />

Näiteks "nädalapäevade aritm<strong>ee</strong>tikas":<br />

E/T = N ja T /E = T .<br />

Arvuga P ei saa jagada, v.a. P/P,<br />

mile väärtuseks on iga arv.<br />

Jagatis a/b on defin<strong>ee</strong>ritud iga b = 0,<br />

kui arvusüst<strong>ee</strong>mi moodul on algarv<br />

⊙ P E T K N R L<br />

P P P P P P P P<br />

E P E T K N R L<br />

T P T N L E K R<br />

K P K L T R E N<br />

N P N E R T L K<br />

R P R K E L N T<br />

L P L R N K T E<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jagamine, kui moodul on algarv<br />

Teor<strong>ee</strong>m<br />

Kui m on algarv ja x < m, siis arvud<br />

on paarikaupa erinevad<br />

Järeldus<br />

x · 0,x · 1,...,x · m − 1<br />

Tõestus. Oletame väitevastaselt, et arvud x · i ja x · j, kus i < j, annavad<br />

jagamisel m-iga sama jäägi. Siis peab kehtima seos m|(j − i)x, mis ei<br />

ole aga võimalik, kuna j − i < m ja gcd(m,x) = 1. S<strong>ee</strong>ga x · i = x · j<br />

m.o.t.t.<br />

Kui moodul m on algarv, siis on moodularitm<strong>ee</strong>tika jagamine x = a/b määratud<br />

üheselt iga b = 0 korral.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Jagamine, kui moodul ei ole algarv<br />

Jagatis ei ole üheselt ei ole<br />

määratud, näiteks:<br />

1 = 2/2 = 3<br />

⊙ 0 1 2 3<br />

0 0 0 0 0<br />

1 0 1 2 3<br />

2 0 2 0 2<br />

3 0 3 2 1<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Kuidas arvutada jagatist x = a/b algarvulise mooduli p järgi?<br />

Kaks sammu:<br />

1 Arvutada y = 1/b<br />

2 Arvutada x = y · a<br />

Kuidas arvutada y = 1/b ehk leida y, nii et b · y = 1 ehk leida y, nii<br />

et by = 1.<br />

Selleks:<br />

1 Arvutada Eukleidese algoritmi abil gcd(p,b) = ... = 1<br />

2 Leida <strong>ee</strong>lmisest seosest kordajad s ja t, nii et ps + bt = 1<br />

3 if t p then t := t mod p fi<br />

4 return(t) % Omadus: t = 1/b<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Mooduli järgi jagamine<br />

Näide: leida 53/2 mooduli 234 527 järgi<br />

Leiame kõigepelt 1/2, milleks arvutame nimetaja ja mooduli<br />

suurima ühisteguri:<br />

gcd(234527,2) = gcd(2,1) = 1<br />

Jääk avaldub mooduli ja nimetaja kaudu järgmiselt:<br />

S<strong>ee</strong>ga 1/2 = 117264<br />

1 = 2(−117263) + 234527 ehk<br />

− 117263 · 2 ≡ 117264 (mod 234527)<br />

Tulemus on x = 53 · 117264 = 117290, sest<br />

x = 53 · 117264 ≡ 117290 (mod 234527)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Lineaarvõrrandite lahendamine<br />

Lahendada võrrand 7x + 3 = 0 mooduli 47 järgi<br />

Lahend on kujul x = −3/7<br />

Arvutame kõigepealt Eukleidese algoritmiga suurima ühisteguri<br />

gcd(47,7) = gcd(7,5) = gcd(5,2) = gcd(2,1) = 1,<br />

mis annab seosed<br />

1 = 5 − 2 · 2 2 = 7 − 5 5 = 47 − 6 · 7<br />

Leiame jäägi sõltuvuse teguritest 47 ja 7:<br />

1 = 5 − 2 · 2 =<br />

= (47 − 6 · 7) − 2 · (7 − 5) =<br />

= 47 − 8 · 7 + 2 · 5 =<br />

= 47 − 8 · 7 + 2 · (47 − 6 · 7) =<br />

= 3 · 47 − 20 · 7<br />

Jätkub järgmisel slaidil ...<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Lineaarvõrrandite lahendamine (2)<br />

Lahendada võrrand 7x + 3 = 0 mooduli 47 järgi<br />

Eelmine teisendus näitab, et −20 · 7 ≡ 1 (mod 47) ehk 27 · 7 ≡ 1 (mod 47)<br />

S<strong>ee</strong>ga 1/7 = −20 = 27<br />

Võrrandi lahend on x = −3 · 27 = 13<br />

Viimane seos tuleneb kongruentsist 44 ≡ −3 (mod 47), mistõttu<br />

x = 44 · 27 = 1188 ≡ 13 (mod 47)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Võrrandisüst<strong>ee</strong>mi lahendamine elimin<strong>ee</strong>rimism<strong>ee</strong>todil<br />

Näide<br />

Lahendada võrrandisüst<strong>ee</strong>m mooduli 127 järgi:<br />

12x + 31y = 2<br />

2x + 89y = 23<br />

Elimin<strong>ee</strong>rimism<strong>ee</strong>todi kohaselt korrutades teist võrrandit −6-ga ja liites võrrandid<br />

saame<br />

2 − 6 · 23<br />

y =<br />

31 − 6 · 89<br />

Kuna 6 · 23 = 138 ≡ 11 (mod 127) ja 6 · 89 = 534 ≡ 26 (mod 127) saab <strong>ee</strong>lmise valemi<br />

teisendada kujule:<br />

2 − 11 −9<br />

y = =<br />

31 − 26 5<br />

Pannes teise võrrandisse selle y väärtuse saab avaldada x ning teisendada seda<br />

arvestusega, et 5 · 23 = 115 ≡ −12 (mod 127) ja 9 · 89 = 801 ≡ 39 (mod 127):<br />

x =<br />

23 − 89y<br />

2<br />

= 23 · 5 − 899<br />

10<br />

= −12 + 39<br />

10<br />

= 27<br />

10<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Võrrandisüst<strong>ee</strong>mi lahendamine elimin<strong>ee</strong>rimism<strong>ee</strong>todil (2)<br />

Eelmine näide jätkub<br />

Arvutame mooduli 127 järgi: x = 27/10<br />

y = −9/5<br />

Selleks arvutame Eukleidese algoritmiga nimetajate ja mooduli suurimad ühistegurid:<br />

gcd(127,5) = gcd(5,2) = gcd(2,1) = 1<br />

gcd(127,10) = gcd(10,7) = gcd(7,3) = gcd(3,1) = 1<br />

Neist tulemustest järelduvad vastavalt seosed:<br />

1 = 5 − 2 · 2 = 5 − 2(127 − 25 · 5) = (−2)127 + 51 · 5<br />

1 = 7 − 2 · 3 = 127 − 12 · 10 − 2(10 − 127 + 12 · 10) = 3 · 127 − 38 · 10<br />

Järelikult jagamine 5-ga on sama, mis korrutamine 51-ga ning jagamine 10-ga on<br />

sama, mis korrutamine −38-ga. S<strong>ee</strong>ga saame süst<strong>ee</strong>mi lahendi<br />

x = 27/10 = −27 · 38 = −1026 = 117<br />

y = −9/5 = −9 · 51 = −459 = 49<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Järgmine punkt<br />

1 Kord- ja algarvud<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

2 Suurim ühistegur<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

3 Moodularitm<strong>ee</strong>tika<br />

4 Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Fermat’ test<br />

Miller-Rabini test<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Fermat’ test<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Fermat’ teor<strong>ee</strong>mist: Kui p on algarv ja täisarv 1 a < p, siis<br />

a p−1 ≡ 1 (mod p).<br />

Kontrollimaks, kas naturaalarv n on kordarv või algarv:<br />

Iga a = 2,3,...,n − 1 korral kontrollida, kas a n−1 ≡ 1 (mod n).<br />

Kui mõne a väärtuse puhul seos ei kehti, on n kordarv, muidu<br />

algarv.<br />

Kas 221 on algarv?<br />

2 220 = 2 11 20 ≡ 59 20 = 59 4 5 ≡ 152 5 =<br />

= 152 · 152 2 2 ≡ 152 · 120 2 ≡ 152 · 35 = 5320 ≡ 16 (mod 221)<br />

Järelikult on 221 kordarv. Tõepoolest 221 = 13 · 17<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Fermat’ test<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Fermat’ teor<strong>ee</strong>mist: Kui p on algarv ja täisarv 1 a < p, siis<br />

a p−1 ≡ 1 (mod p).<br />

Kontrollimaks, kas naturaalarv n on kordarv või algarv:<br />

Iga a = 2,3,...,n − 1 korral kontrollida, kas a n−1 ≡ 1 (mod n).<br />

Kui mõne a väärtuse puhul seos ei kehti, on n kordarv, muidu<br />

algarv.<br />

Kas 221 on algarv?<br />

2 220 = 2 11 20 ≡ 59 20 = 59 4 5 ≡ 152 5 =<br />

= 152 · 152 2 2 ≡ 152 · 120 2 ≡ 152 · 35 = 5320 ≡ 16 (mod 221)<br />

Järelikult on 221 kordarv. Tõepoolest 221 = 13 · 17<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Probl<strong>ee</strong>mid Fermat’ testiga<br />

Fermat’ test<br />

Miller-Rabini test<br />

Vaja on arvutada suuri astmeid ruututõstmism<strong>ee</strong>tod<br />

Vaja on arvutada suurte arvudega moodularitm<strong>ee</strong>tika<br />

Arv a võib osutuda pseudoalgarvuks valida a juhuslikult<br />

ning arvutada korduvalt<br />

Arv a võib osutuda Carmichaeli arvuks kasutada<br />

efektiivsemaid m<strong>ee</strong>todeid, nt Miller-Rabini testi<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Täiendatud Fermat’ test<br />

Fermat’ test<br />

Miller-Rabini test<br />

Sisend: Testitav täisarv n ja param<strong>ee</strong>ter k – korduste arv<br />

Väljund "n on kordarv" või "n on tõenäoliselt algarv"<br />

for i := 0 step 1 to k<br />

do<br />

od<br />

1 Valida juhuslikult täisarv a < n<br />

2 if a n−1 ≡ 1 (mod n) return("p on kordarv"); exit<br />

return("p on tõenäoliselt algarv")<br />

Näide, n = 221, juhuslikult valitud A väärtused on 38 ja 26<br />

a n−1 = 38 220 ≡ 1 (mod 221) 38 on pseudoalgarv<br />

a n−1 = 26 220 ≡ 169 ≡ 1 (mod 221) 221 on kordarv<br />

Ei tööta, kui n on Carmichaeli arv: 561,1105,1729,2465,2821,6601,8911,...<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Täiendatud Fermat’ test<br />

Fermat’ test<br />

Miller-Rabini test<br />

Sisend: Testitav täisarv n ja param<strong>ee</strong>ter k – korduste arv<br />

Väljund "n on kordarv" või "n on tõenäoliselt algarv"<br />

for i := 0 step 1 to k<br />

do<br />

od<br />

1 Valida juhuslikult täisarv a < n<br />

2 if a n−1 ≡ 1 (mod n) return("p on kordarv"); exit<br />

return("p on tõenäoliselt algarv")<br />

Näide, n = 221, juhuslikult valitud A väärtused on 38 ja 26<br />

a n−1 = 38 220 ≡ 1 (mod 221) 38 on pseudoalgarv<br />

a n−1 = 26 220 ≡ 169 ≡ 1 (mod 221) 221 on kordarv<br />

Ei tööta, kui n on Carmichaeli arv: 561,1105,1729,2465,2821,6601,8911,...<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Järgmine punkt<br />

1 Kord- ja algarvud<br />

Jaguvus<br />

Algarvud<br />

Fermat’ teor<strong>ee</strong>m<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

2 Suurim ühistegur<br />

Definitsioon<br />

Ühisteguri omadused<br />

Eukleidese algoritm<br />

3 Moodularitm<strong>ee</strong>tika<br />

4 Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Fermat’ test<br />

Miller-Rabini test<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Id<strong>ee</strong>, kuidas ületada probl<strong>ee</strong>mi Carmichaeli arvudega<br />

Olgu n (paaritu) arv, mille algarvulisust tahetakse kontrollida<br />

Valida juhuslikult arv a vahemikust 0 a n − 1.<br />

Vaatleme avaldist a n − a = a(a n−1 − 1) ja seni kuni võimalik<br />

lahutame seda rekursiivselt tegurites vastavalt seosele<br />

x 2 − 1 = (x − 1)(x + 1)<br />

Kui avaldis a n − a ei jagu n-ga, siis ei jagu selle arvuga ükski<br />

tegur.<br />

Kui vähemalt üks tegur jagub, siis on tõenäoliselt tegemist<br />

algarvuga. Tõenäosuse suurendamiseks tuleks katset korrata<br />

mingi teise juhusliku arvuga a.<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Näide n = 221 korral<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Lahutame teguriteks avaldise:<br />

a 221 − a = a(a 220 − 1) =<br />

Fermat’ test<br />

Miller-Rabini test<br />

= a(a 110 − 1)(a 110 + 1) =<br />

= a(a 55 − 1)(a 55 + 1)(a 110 + 1)<br />

Kui a = 174, siis<br />

174 110 = (174 2 ) 55 ≡ (220) 55 = 220 · (220 2 ) 27 ≡ 220 · 1 27 ≡ 220 ≡ −1 (mod 221).<br />

S<strong>ee</strong>ga 221 on algarv või pseudoalgarv alusel 174.<br />

Kui a = 137, siis 221 |a,221 |(a 55 − 1),221 |(a 55 + 1),221 |(a 110 + 1). S<strong>ee</strong>ga on<br />

221 kordarv<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Miller-Rabini test<br />

Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Fermat’ test<br />

Miller-Rabini test<br />

Sisend: Testitav paaritu täisarv n > 3 ja param<strong>ee</strong>ter k – korduste arv<br />

Väljund "n on kordarv" või "n on tõenäoliselt algarv"<br />

Tegurdada n − 1 = 2 s · d, kus d on paaritu<br />

LOOP: for i := 0 step 1 to k<br />

{<br />

}<br />

1 Valida juhuslikult täisarv a ∈ {2,3,...,n − 1};<br />

2 x := a d mod n;<br />

3 if x = 1 or x = 1 then { next LOOP; }<br />

4 for r := 1 step 1 to s − 1<br />

{<br />

1 x := x2 mod n<br />

2 if x = 1 then { return("n on kordarv"); exit; }<br />

3 if x = n − 1 then { next LOOP; }<br />

}<br />

5 return("n on kordarv"); exit;<br />

return("p on tõenäoliselt algarv");<br />

Algoritmi k<strong>ee</strong>rukus on O(k log 3 2 n)<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad


Kord- ja algarvud<br />

Suurim ühistegur<br />

Moodularitm<strong>ee</strong>tika<br />

Algarvulisuse testimine<br />

Näide n = 561 (Carmichaeli arv)<br />

Lahutame teguriteks avaldise:<br />

a 561 − a = a(a 560 − 1) =<br />

= a(a 280 − 1)(a 280 + 1) =<br />

Fermat’ test<br />

Miller-Rabini test<br />

= a(a 140 − 1)(a 140 + 1)(a 280 + 1) =<br />

= a(a 70 − 1)(a 70 + 1)(a 140 + 1)(a 280 + 1) =<br />

= a(a 35 − 1)(a 35 + 1)(a 70 + 1)(a 140 + 1)(a 280 + 1)<br />

Kuna a = 2 korral<br />

561 |(a 35 − 1) 561 |(a 35 + 1) 561 |(a 70 + 1) 561 |(a 140 + 1) 561 |(a 280 + 1),<br />

s<strong>ee</strong>ga on 561 kordarv<br />

Jaan Penjam, email: jaan@cs.<strong>ioc</strong>.<strong>ee</strong> Diskr<strong>ee</strong>tne Matemaatika II: Rekurrentsed arvujadad

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!