ARVUTEOORIA - Cs.ioc.ee
ARVUTEOORIA - Cs.ioc.ee
ARVUTEOORIA - Cs.ioc.ee
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