Salausmenetelmät / Osa I Veikko Keränen, Jouko Teeriaho (RAMK, 2006)
|
|
- Elli Oksanen
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 Salausmenetelmät / Osa I Veikko Keränen, Jouko Teeriaho (RAMK, 2006) Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa - johdanto - matemaattinen induktiotodistus - matriisien kertolaskun käyttömahdollisuus - käsinlaskuesimerkkejä - kaikki välivaiheet esittävä ohjelma Mathematicalla ü Laajennettu Eukleideen algoritmi - suoraviivainen tapa Etsitään annettujen positiivisten lukujen a ja b suurimman yhteisen tekijän d = syt(a, b) esitys lukujen a ja b lineaarkombinaationa muodossa d = u a + v b; u, v œ ; suoraviivaisella tavalla. Tässä tavassa jakoalgoritmin tuottama jakojäännös r i esitetään jokaisella askeleella muodossa u i a + v i b. Viimeisen jakojäännöksen r n ollessa nolla, on viimeinen nollasta eroava jakojäännös r n-1 etsimämme lineaarikombinaatio d = sytha, bl = r n-1 = ua+ vb. Aloitamme laskemalla yksityiskohtaisesti useita ensimmäisiä rivejä: a b > 0 a = q 1 b + r 1 ; r 1 = a q 1 b = u 1 a + v 1 b, missä u 1 = 1, v 1 = q 1 œ b = q 2 r 1 + r 2 ; r 2 = b q 2 r 1 = b q 2 (a q 1 b) = q 2 a + (1 q 2 v 1 )b = u 2 a + v 2 b, missä u 2 = q 2, v 2 = 1 q 2 v 1 r 1 = q 3 r 2 + r 3 ; r 3 = r 1 q 3 r 2 = (a q 1 b ) q 3 (b q 2 (a q 1 b )) = u 1 a + v 1 b q 3 (q 2 a + (1 q 2 v 1 )b) = u 1 a + v 1 b q 3 ( u 2 a + v 2 b) = (u 1 q 3 u 2 )a + (v 1 q 3 v 2 )b = u 3 a + v 3 b, missä u 3 = u 1 q 3 u 2, v 3 = v 1 q 3 v 2 r 2 = q 4 r 3 + r 4 ; r 4 = r 2 q 4 r 3 = (b q 2 (a q 1 b )) q 4 ((a q 1 b ) q 3 (b q 2 (a q 1 b ))) = u 2 a + v 2 b q 4 (u 3 a + v 3 b) = (u 2 q 4 u 3 )a + (v 2 q 4 v 3 )b = u 4 a + v 4 b, missä u 4 = u 2 q 4 u 3, v 4 = v 2 q 4 v 3 r 3 = q 5 r 4 + r 5 ; r 5 = r 3 q 5 r 4 = u 5 a + v 5 b, missä u 5 = u 3 q 5 u 4, v 5 = v 3 q 5 v 4 ja niin edelleen. Meillä on siis a = q 1 b + r 1, r 1 = a q 1 b b = q 2 r 1 + r 2, r 2 = b q 2 r 1. Tämän lisäksi yleiset jakojäännökset sekä kertoimet u i ja v i ovat ilmeisestikin muotoa
2 2 salausmenetelmat_laajennettueukleideenalgoritmi.nb r i = r i-2 q i r i-1 = u i a + v i b, missä u i = u i-2 q i u i-1 ja v i = v i-2 q i v i-1, aina kun i 3. (*) Koska u 1 = 1, v 1 = q 1 ja u 2 = q 2, v 2 = 1 q 2 v 1, niin u 2 = u 0 q 2 u 1, v 2 = v 0 q 2 v 1, kun u 0 = 0 ja v 0 = 1. Toisin sanoen, valitsemalla r 0 = b; u 0 = 0 ja v 0 = 1 sekä u 1 = 1, v 1 = q 1, voidaan (*) laajentaa koskemaan myös arvoa i = 2. Saadaan siis r 1 = a q 1 b r i = r i-2 q i r i-1 = u i a + v i b u i = u i-2 q i u i-1 v i = v i-2 q i v i-1, aina kun i 2. Merkitään vielä r -1 = a, r 0 = b; u -1 = 1 ja v -1 = 0 sekä u 0 = 0 ja v 0 = 1. Tällöin ensimmäinen yhtäsuuruus r 1 = a q 1 b sekä arvot u 1 ja v 1 saadaan yleisistä palautuskaavoista myös tapauksessa i = 1: r i = r i-2 q i r i-1 = u i a + v i b u i = u i-2 q i u i-1 v i = v i-2 q i v i-1, aina kun i 1. Yllä esitetyistä laskelmista voidaan myös havaita, että luvun a (> 0) kerroin u i on positiivinen aina kun indeksi i on pariton ja negatiivinen aina kun i > 0 on parillinen. Luvun b (> 0) kertoimen v i etumerkki puolestaan vaihtelee päinvastoin: v i on negatiivinen aina kun indeksi i > 0 on pariton ja positiivinen aina kun i on parillinen. Esitetään seuraavaksi tämä laajennettu Eukleideen algoritmi valmiin ohjelman muodossa (kuten jo kappaleessa 2.2), ja todistetaan sen virheetön toiminta matemaattisella induktiolla. Algoritmi 2.2 Laajennettu Eukleideen algoritmi syöte a b > 0 alkuarvot r -1 = a; r 0 = b; u -1 = 1; u 0 = 0; v -1 = 0; v 0 = 1; n = 0; while r n > 0 do begin aseta n = n + 1; tulosta r n-2 = q n r n-1 + r n, r n-1 > r n 0; aseta u n = u n-2 - q n u n-1 ; aseta v n = v n-2 - q n v n-1 ; end aseta u = u n-1 ; v = v n-1 ; (2.2) sytha, bl = r n-1 = ua+ vb Algoritmin 2.2 oikeellisuuden todistus: Aluksi huomataan, että luvut r n, n 1, muodostavat ei-negatiivisten kokonaislukujen aidosti vähenevän jonon.
3 salausmenetelmat_laajennettueukleideenalgoritmi.nb 3 Näin ollen algoritmin toiminta päättyy vähintään a iteraation jälkeen (käytännössä paljon nopeammin). Päätekstin Kappaleessa 2.3. analysoidaan tarkemmin kuinka nopea Eukleideen algoritmi todella on. Algoritmin palauskaavasta r i = r i-2 q i r i-1 seuraa, että jokainen jakojäännöksien r i-2 ja r i-1 yhteinen tekijä on myös jakojäännöksien r i ja r i-1 yhteinen tekijä ja päinvastioin, jokainen jakojäännöksien r i ja r i-1 tekijä t on myös lukujen r i-2 ja r i-1 tekijä, koska muodoista r i = t r i ' ja r i-1 = t r i-1 ' (t, r i ', r i-1 ' œ + ) seuraa palautuskaavan nojalla, että r i-2 = r i + q i r i-1 = t r i ' + q i t r i-1 ' = t (r i ' + q i r i-1 '), ts. t on luvun r i-2 (ja oletuksen mukaan myös luvun r i-1 ) tekijä. (Tämä tarkastelu tehtiin itse asiassa jo Kappaleen 2.1 alussa.) Siis sythr i-2, r i-1 L = sythr i-1, r i L, aina kun 1 i n, ja näin ollen sytha, bl = sythr -1, r 0 L = sythr 0, r 1 L = sythr 1, r 2 L = = sythr n-1, r n L = sythr n-1,0l = r n-1. Tämä todistaa ensimmäisen yhtäsuuruuden kohdassa (2.2). Osoitamme nyt, että kaikille k, -1 k n, on voimassa (2.3) u k a + v k b = r k. Huomaa, että tässä sijoitus k = n - 1 tuottaa toisen yhtäsuuruuden kohdassa (2.2). Kun k =-1 ja k = 0 relaatio (2.2) on voimassa alkuarvojen r -1 = a; r 0 = b; u -1 = 1; u 0 = 0; v -1 = 0; v 0 = 1; valinnan perusteella. Jatketaan matemaattisella induktiolla. Tehdään induktio-oletus (i.o.), että (2.2) on voimassa, kun n = k 2 ja kun n = k 1. Algoritmin palautuskaavojen ja induktio-oletuksen nojalla seuraa, että r k = r k-2 - q k r i.o. k-1 = 8u k-2 a + v k-2 b< - q k 8u k-1 a + v k-1 b< =Hu k-2 q k u k-1 L a + Hv k-2 q k v k-1 L b = u k a + v k b. Induktioperiaatteen nojalla kohta (2.3) on tosi. Näin ollen Algoritmi 2.2 toimii oikein. Tietenkään ei ole välttämätöntä tallettaa kaikkia muuttujien r k, u k ja v k väliarvoja. Vain kaksi viimeistä yhdessä q k :n kanssa riittää. Muut väliarvot olivat mukana algoritmissa vain helpottamassa todistuksen lukemista. Huomautus. Koska kertoimet u i ja v i lasketaan lineaaristen yhtälöiden Ñ u i = u i-2 q i u i-1 v i = v i-2 q i v i-1 avulla, voitaisiin ne ja saman tien seuraavalla askeleella tarvittavat u i-1 ja v i-1 tuottaa ja tallentaa matriisimuodossa seuraavasti: i j u i k u i-1 v i y z = i j -q i 1 v i-1 { k 1 0 y z i { k j ui-1 v i-1 y z. u i-2 v i-2 { Koska u -1 = 1; u 0 = 0; v -1 = 0; v 0 = 1; meillä on Kun i = 1, saadaan Seuravassa askeleessa saadaan i j u 0 v 0 y z = i j 0 1 y z. k u -1 v -1 { k 1 0 { i j u 1 v 1 y z = i j -q 1 1 y z i j 0 1 y z. k u 0 v 0 { k 1 0 { k 1 0 { i j u 2 v 2 y z = i j -q 2 1 y z i j u 1 v 1 y z = i j -q 2 1 y z( i j -q 1 1 y z i k u 1 v 1 { k 1 0 { k u 0 v 0 { k 1 0 { k 1 0 { k j 0 1 y z). 1 0 {
4 4 salausmenetelmat_laajennettueukleideenalgoritmi.nb Tässä kahden viimeisen matriisin ympärillä olevat sulkumerkit voidaan jättää merkitsemättä matriisien liitäntä- eli assosiatiivisuusominaisuuksien nojalla. Lopullisessa lineaarikombinaatiossa sytha, bl = r n-1 = ua+ vb kertoimet ovat u = u n-1 ; v = v n-1 ja ne löytyvät n 1 matriisikertolaskun jälkeen saatavan tulomatriisin ensimmäiseltä vaakariviltä sen jälkeen, kun tarvittavat kertoimet q i ovat löytyneet: i j u n-1 v n-1 y z = i j -q n-1 1 y z i j -q 2 1 y z i j -q 1 1 y z i j 0 1 y z. k u n-2 v n-2 { k 1 0 { k 1 0 { k 1 0 { k 1 0 { Alla olevassa käsinlaskuesimerkissä, jossa lasketaan syt(368, 123), saadaan q 1 = 2 ja q 2 = 1. Tuossa tapauksessa on kolme riviä, joten n = 3. Kertoimiksi saadaan u = u n-1 =-1 ; v = v n-1 = 3. Nämä luvut löytyvät tulomatriisin ensimmäiseltä vaakariviltä: J N.J N.J N i j -1 3 y z k 1-2 { Jätämme lukijalle tämän elegantin laskentatavan ohjelmoinnin harjoitustehtäväksi emmekä enää käsittele sitä tässä yhteydessä. ü Käsinlaskuesimerkki: a = 368 ja b = 123 Tässä syt = 1, mikä nähdään Eukleideen algoritmilla seuraavasti: 368 = 2 * = 1 * = 122 * Viimeinen nollasta eroava jakojäännös = 1 = syt(368, 123). Esitetään syt = 1 nyt lukujen a = 368 ja b = 123 lineaarikombinaationa. Tässä yksinkertaisessa tilanteessa laskelmat on helppo tehdä käsin. Meillä siis on voimassa r i = r i-2 q i r i-1 = u i a + v i b, missä u i = u i-2 q i u i-1, v i = v i-2 q i v i-1, u 0 = 0 ja v 0 = 1 sekä u 1 = 1, v 1 = q 1. Niinpä laskemme seuraavasti: r i-2 = q i r i-1 + r i ; r i = r i-2 q i r i-1 = u i a + v i b ; u i, v i, q i = 2* ; 122 = 368 2*123 ; u 1 = 1, v 1 = q 1 = = 1* ; 1 = 123 1*(368 2*123) = 1* *123 ; u 2 = u 0 q 2 u 1 = 0 1*1 = 1,
5 salausmenetelmat_laajennettueukleideenalgoritmi.nb 5 v 2 = v 0 q 2 v 1 = 1 1*( 2) = = 122*1 + 0 ; 1 = syt(368, 123) = u a + v b, missä u = u 2 = 1 ja v = v 2 = 3. Siis syt(368, 123) = 1 = 1* *123. Tämä tulos on helppo varmistaa ja todeta oikeaksi. ü Käsinlaskuesimerkki: a = 1431 ja b = 1368 Tässä syt = 9, mikä nähdään Eukleideen algoritmilla seuraavasti: 1431 = 1 * = 21 * = 1 * = 2 * = 2 * Viimeinen nollasta eroava jakojäännös = 9 = syt(1431, 1368). Laketaan vielä lineaarikombinaatio 9 = u i a + v i b. Tässä a = 1431 ja b = 1368 sekä kuten edellä r i = r i-2 q i r i-1 = u i a + v i b, missä u i = u i-2 q i u i-1, v i = v i-2 q i v i-1, u 0 = 0 ja v 0 = 1 sekä u 1 = 1, v 1 = q 1. Keskitytään nyt vain kaikkein oleellisiimpaan, eli lukujen u i ja v i laskemiseen kullakin askeleella: r i-2 = q i r i-1 + r i ; r i = r i-2 q i r i-1 = u i a + v i b ; u i, v i, q i = 1* = a b = u 1 a + v 1 b; u 1 = 1, v 1 = q 1 = = 21* = u 2 a + v 2 b; u 2 = u 0 q 2 u 1 = 0 21*1 = 21, v 2 = v 0 q 2 v 1 = 1 21*( 1) = = 1* = u 3 a + v 3 b; u 3 = u 1 q 3 u 2 = 1 1*( 21) = 22, v 3 = v 1 q 3 v 2 = 1 1*22 = = 2* = u 4 a + v 4 b; u 4 = u 2 q 4 u 3 = 21 2*22 = 65, v 4 = v 2 q 4 v 3 = 22 2*( 23) = = 2* = syt(1431, 1368) = u a + v b, missä u = u 4 = 65 ja v = v 4 = 68. Siis syt(1431, 1368) = 9 = 65* *1368. Tarkista vielä tämä tulos kertomalla luvut ja laskemalla saadut tulot yhteen. ü Laajennetun Eukleideen algoritmin ohjelmointi Mathematicalla Esitetään aluksi Eukleideen perusalgoritmi ilman lineaarikombinaatiota. Tällöin laskelmien rakenne on varsin yksinkertainen. Jos käyttäjän antama (positiivinen luku) a on pienempi kuin b, vaihdetaan ensin näiden lukujen a ja b järjestys:
6 6 salausmenetelmat_laajennettueukleideenalgoritmi.nb b_<d := b, 8a, "=", ê bd, " ", b, "+", a Floor@a ê bd b<, f@8b, a<dd; f@8a_,_,_,_,b_,_,r_<d := Module@8myPr = ""<, If@r 0, Print@"\nTässä syt = ", b, ".", "\n\ntulos nähdään Eukleideen algoritmilla seuraavasti:\n"d; mypr, 8b, "=", Floor@b ê rd, " ", r, "+", b Floor@b ê rd r<dd; Esimerkki: Clear@EukleidesD; Eukleides@a_, b_d := H Print@ Hsteps = Rest@NestWhileList@f, 8a, b<, H# =!= ""L &DDL êê TableFormD; Print@"Viimeinen nollasta eroava jakojäännös = ", Last@steps@@Length@stepsD 2DDD, " = syth", a, ", ", b, "L."D L Eukleides@1234, 2345D Tässä syt = 1. Tulos nähdään Eukleideen algoritmilla seuraavasti: 2345 = 1 * = 1 * = 9 * = 30 * = 1 * = 3 * Viimeinen nollasta eroava jakojäännös = 1 = syth1234, 2345L. Palautetaan seuraavaksi mieleen yllä todistetun laajennetun algoritmin pseudokoodi: Algoritmi 2.2 Laajennettu Eukleideen algoritmi syöte a b > 0
7 salausmenetelmat_laajennettueukleideenalgoritmi.nb 7 alkuarvot r -1 = a; r 0 = b; u -1 = 1; u 0 = 0; v -1 = 0; v 0 = 1; n = 0; while r n > 0 do begin aseta n = n + 1; tulosta r n-2 = q n r n-1 + r n, r n-1 > r n 0; aseta u n = u n-2 - q n u n-1 ; aseta v n = v n-2 - q n v n-1 ; end aseta u = u n-1 ; v = v n-1 ; Meillä on siis aluksi: r -1 = a; r 0 = b; (a b > 0) u -1 = 1; u 0 = 0; v -1 = 0; v 0 = 1; n = 0; r -1 = a = q 1 b + r 1 ; r 1 = a q 1 b = u 1 a + v 1 b, missä u 1 = u -1 q 1 u 0, v 1 = v -1 q 1 v 0 r 0 = b = q 2 r 1 + r 2 ; r 2 = b q 2 r 1 = u 2 a + v 2 b, missä u 2 = u 0 q 2 u 1, v 2 = v 0 q 2 v 1 r 1 = q 3 r 2 + r 3 ; r 3 = u 3 a + v 3 b, missä u 3 = u 1 q 3 u 2, v 3 = v 1 q 3 v 2 r 2 = q 4 r 3 + r 4 ; r 4 = u 4 a + v 4 b, missä u 4 = u 2 q 4 u 3, v 4 = v 2 q 4 v 3 Esitetään nyt jakoalgoritmin suorittava funktio jako ja sitä käyttävä funktio laajennettueukleides: Clear@jakoD; jako@8a_, b_<d := If@a b, Print@r 1,"=", a, "=", q 1," ", r 0,"+", r 1,"=", Floor@a ê bd, " ", b, "+", a Floor@a ê bd b, "; ", r 1, "=", a Floor@a ê bd b, "=", u 1,"a +", v 1,"b"," = ", "H", 1 0, "L ", a, " + H", 0 Floor@a ê bd, "L ", bd; 81, a, Floor@a ê bd, b, a Floor@a ê bd b, 80, 1<, 1 0, a, 0 Floor@a ê bd, b<h = 8indeksi=n=1,r 1,q 1,r 0, r 1,8u 0,v 0 <,u 1 =u 1 q 1 u 0,a,v 1 =v 1 q 1 v 0,b< L, jako@8b, a<dd; jako@ 8n_, r1_, q3_, r2_, r3_, 8u2_, v2_<, u3_, a_, v3_, b_<d := Module@8i, q4, r4, u4, v4, nextstep<, If@r3 0, "", Hq4 = Floor@r2 ê r3d; r4= r2 q4 r3; u4 = u2 q4 u3; v4 = v2 q4 v3; nextstep = 8i = n + 1, r2, q4, r3, r4, 8u3, v3<, u4,a,v4,b<; Print@r i 2,"=", r2, "=", q i," ", r i 1,"+", r i,"=", q4, " ", r3, "+",r4,"; ",r i,"=", r4, "=", u i,"a +", v i, "b", " = ", "H", u4, "L ", a, " + H", v4, "L ", bd; nextstepldd;
8 8 salausmenetelmat_laajennettueukleideenalgoritmi.nb b_d := Eukleideen algoritmi toimii seuraavasti:"d; = ", bd, ", b = ", Min@a, bdd; lastrelevantstep = NestWhile@jako, 8a, b<, H# =!= ""L &, 1, Infinity, 2D; Print@"Viimeinen nollasta eroava jakojäännös = ", lastrelevantstep@@5dd, " = syth", a, ", ", b, "L."D; Print@"Lineaarikombinaatio: ", lastrelevantstep@@5dd, " = u a + v b = ", "H", lastrelevantstep@@7dd, "L ", Max@a, bd, " + H", lastrelevantstep@@9dd, "L ", Min@a, bd, "."D;L; ü Esimerkki: laajennettueukleides[123,368] laajennettueukleides@123, 368D Laajennettu Eukleideen algoritmi toimii seuraavasti: a = 368, b = 123 r -1 =368=q 1 *r 0 +r 1 =2* ; r 1 =122=u 1 a +v 1 b = H1L*368 + H-2L*123 r 0 =123=q 2 *r 1 +r 2 =1*122+1; r 2 =1=u 2 a +v 2 b = H-1L*368 + H3L*123 r 1 =122=q 3 *r 2 +r 3 =122*1+0; r 3 =0=u 3 a +v 3 b = H123L*368 + H-368L*123 Viimeinen nollasta eroava jakojäännös = 1 = syth123, 368L. Lineaarikombinaatio: 1 = u a + v b = H-1L*368 + H3L*123. Tarkistuslaskelmia luvuilla a ja b sekä tuloksena saaduilla luvuilla u ja v: lastrelevantstep H siis 8i,r i 2,q i,r i 1,r i,8u i 1,v i 1 <,u i,a,v i,b<, kun i = n 1 L 82, 123, 1, 122, 1, 81, -2<, -1, 368, 3, 123<
9 salausmenetelmat_laajennettueukleideenalgoritmi.nb 9 Print@"Lineaarikombinaatio u a + v b = ", "H", lastrelevantstep@@ 4DD, "L ", lastrelevantstep@@ 3DD, " + H", lastrelevantstep@@ 2DD, "L ", lastrelevantstep@@ 1DD, " tuottaa sievennettynä luvun:"d; lastrelevantstep@@ 4DD lastrelevantstep@@ 3DD + lastrelevantstep@@ 2DD lastrelevantstep@@ 1DD Lineaarikombinaatio u a + v b = H-1L*368 + H3L*123 tuottaa sievennettynä luvun: 1 Tämähän on aivan oikein. ü Esimerkki: laajennettueukleides[34527, ] laajennettueukleides@34527, D Laajennettu Eukleideen algoritmi toimii seuraavasti: a = , b = r -1 = =q 1 *r 0 +r 1 =529* ; r 1 =8862=u 1 a +v 1 b = H1L* H-529L*34527 r 0 =34527=q 2 *r 1 +r 2 =3* ; r 2 =7941=u 2 a +v 2 b = H-3L* H1588L*34527 r 1 =8862=q 3 *r 2 +r 3 =1* ; r 3 = 921=u 3 a +v 3 b = H4L* H-2117L*34527 r 2 =7941=q 4 *r 3 +r 4 =8* ; r 4 = 573=u 4 a +v 4 b = H-35L* H18524L*34527 r 3 =921=q 5 *r 4 +r 5 =1* ; r 5 = 348=u 5 a +v 5 b = H39L* H-20641L*34527 r 4 =573=q 6 *r 5 +r 6 =1* ; r 6 = 225=u 6 a +v 6 b = H-74L* H39165L*34527
10 10 salausmenetelmat_laajennettueukleideenalgoritmi.nb r 5 =348=q 7 *r 6 +r 7 =1* ; r 7 =123 =u 7 a +v 7 b = H113L* H-59806L*34527 r 6 =225=q 8 *r 7 +r 8 =1* ; r 8 =102 =u 8 a +v 8 b = H-187L* H98971L*34527 r 7 =123=q 9 *r 8 +r 9 =1*102+21; r 9 =21 =u 9 a +v 9 b = H300L* H L*34527 r 8 =102=q 10 *r 9 +r 10 =4*21+18; r 10 =18= u 10 a +v 10 b = H-1387L* H734079L*34527 r 9 =21=q 11 *r 10 +r 11 =1*18+3; r 11 =3= u 11 a +v 11 b = H1687L* H L*34527 r 10 =18=q 12 *r 11 +r 12 =6*3+0; r 12 =0=u 12 a +v 12 b = H-11509L* H L*34527 Viimeinen nollasta eroava jakojäännös = 3 = syth34527, L. Lineaarikombinaatio: 3 = u a + v b = H1687L* H L* Tarkistuslaskelmia luvuilla a ja b sekä tuloksena saaduilla luvuilla u ja v: lastrelevantstep H siis 8i,r i 2,q i,r i 1,r i,8u i 1,v i 1 <,u i,a,v i,b<, kun i = n 1 L 811, 21, 1, 18, 3, , <, 1687, , , 34527<
11 salausmenetelmat_laajennettueukleideenalgoritmi.nb 11 u a + v b = ", "H", lastrelevantstep@@ 4DD, "L ", lastrelevantstep@@ 3DD, " + H", lastrelevantstep@@ 2DD, "L ", lastrelevantstep@@ 1DD, " tuottaa sievennettynä luvun:"d; lastrelevantstep@@ 4DD lastrelevantstep@@ 3DD + lastrelevantstep@@ 2DD lastrelevantstep@@ 1DD Lineaarikombinaatio u a + v b = H1687L* H L*34527 tuottaa sievennettynä luvun: 3 Tämäkin on oikein. Kokeillaan saadun syt(a,b) :n laskemista vielä Eukleideen perusalgoritmilla ilman lineaarikombinaatiota. Tällöin laskelmien rakenne on yksinkertainen. Samat laskelmat ovat toki näkyvissä jo edellisen tulostuksen vasemmanpuoleisessa reunassa. Eukleides@34527, D Tässä syt = 3. Tulos nähdään Eukleideen algoritmilla seuraavasti: = 529 * = 3 * = 1 * = 8 * = 1 * = 1 * = 1 * = 1 * = 1 * = 4 * = 1 * = 6 * Viimeinen nollasta eroava jakojäännös = 3 = syth34527, L.
12 12 salausmenetelmat_laajennettueukleideenalgoritmi.nb ü Esimerkki: a = Fibonacci[100]; b = Fibonacci[99]; laajennettueukleides[ , ] a = Fibonacci@100D b = Fibonacci@99D laajennettueukleides@a, bd Laajennettu Eukleideen algoritmi toimii seuraavasti: a = , b = r -1 = =q 1 *r 0 +r 1 =1* ; r 1 = =u 1 a +v 1 b = H1L* H-1L* r 0 = =q 2 *r 1 +r 2 =1* ; r 2 = =u 2 a +v 2 b = H-1L* H2L* r 1 = =q 3 *r 2 +r 3 =1* ; r 3 = =u 3 a +v 3 b = H2L* H-3L* Tähän väliin jäävät ohjelman tulostukset on tarkoituksella poistettu. r 94 =5=q 96 *r 95 +r 96 =1*3+2; r 96 =2=u 96 a +v 96 b = H L* H L* r 95 =3=q 97 *r 96 +r 97 =1*2+1; r 97 =1=u 97 a +v 97 b = H L* H L* r 96 =2=q 98 *r 97 +r 98 =2*1+0; r 98 =0=u 98 a +v 98 b = H L* H L* Viimeinen nollasta eroava jakojäännös = 1 = syth , L. Lineaarikombinaatio: 1 = u a + v b = H L* H L*
13 salausmenetelmat_laajennettueukleideenalgoritmi.nb 13 Tarkistuslaskelmia luvuilla a ja b sekä tuloksena saaduilla luvuilla u ja v: lastrelevantstep H siis 8i,r i 2,q i,r i 1,r i,8u i 1,v i 1 <,u i,a,v i,b<, kun i = n 1 L 897, 3, 1, 2, 1, , <, , , , < Print@"Lineaarikombinaatio u a + v b = ", "H", lastrelevantstep@@ 4DD, "L ", lastrelevantstep@@ 3DD, " + H", lastrelevantstep@@ 2DD, "L ", lastrelevantstep@@ 1DD, " tuottaa sievennettynä luvun:"d; lastrelevantstep@@ 4DD lastrelevantstep@@ 3DD + lastrelevantstep@@ 2DD lastrelevantstep@@ 1DD Lineaarikombinaatio u a + v b = H L* H L* tuottaa sievennettynä luvun: 1 Tulos on oikein! Näille suurille luvuille Fibonacci[100] ja Fibonacci[99] tarvittiin suurimman yhteisen tekijän laskemiseen vain = 98 askelta, vaikka kyseessä on hankalin mahdollinen tapaus (kun algoritmin toiminnan nopeutta verrataan luvun b arvoon, a > b 1). Todellakin, algoritmin toiminta on hitaimmillaan silloin, kun jakojäännös r k pienenee kussakin askeleessa r k-2 = q k r k-1 + r k mahdollisimman vähän. Tällaiseen tilanteeseen puolestaan joudutaan, jos r k-2 = r k-1 + r k aina kun 2 k n - 1, ts. jos jokaisella askeleella osamäärä q k saa arvon 1 (mahdollisesti ensimmäistä askelta a = q 1 b + r 1 lukuunottamatta). Tarkemmin tätä asiaa käsitellään päätekstin Kappaleessa 2.3. Se että kaikki kertoimet q i ovat ykkösiä tapauksessa a = Fibonacci[100], b = Fibonacci[99] näkyy helpoiten perusalgoritmista: Eukleides@ a = Fibonacci@100D, b = Fibonacci@99D D Tässä syt = 1. Tulos nähdään Eukleideen algoritmilla seuraavasti:
14 14 salausmenetelmat_laajennettueukleideenalgoritmi.nb = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 *
15 salausmenetelmat_laajennettueukleideenalgoritmi.nb = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 1 * = 2 * Viimeinen nollasta eroava jakojäännös = 1 = syth , L. Huomautus. Koska tässä lineaarikombinaatio u a + v b = 1, saadaan u a 1 = v b, ts. u a ª 1 (mod b) ja näin ollen u ª a -1 (mod b). Salakirjoituksissa tällaisilla käänteisalkioilla on hyvin keskeinen merkitys, kuten tullaan näkemään. Tämän viimeisen esimerkin tapauksessa lauseke u a + v b on ( )* ( )* = 1, joten ª (mod ), ts * ª 1 (mod ).
Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa
Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa - johdanto - matemaattinen induktiotodistus - matriisien kertolaskun käyttömahdollisuus - käsinlaskuesimerkkejä - kaikki välivaiheet esittävä
LisätiedotSalausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)
Salausmenetelmät Veikko Keränen, Jouko Teeriaho (RAMK, 2006) LUKUTEORIAA JA ALGORITMEJA 2. Eukleideen algoritmi à 2.1 Suurimman yhteisen tekijän tehokas laskutapa Tässä luvussa tarkastelemme annettujen
Lisätiedot2. Eukleideen algoritmi
2. Eukleideen algoritmi 2.1 Suurimman yhteisen tekijän tehokas laskutapa Tässä luvussa tarkastellaan annettujen lukujen suurimman yhteisen tekijän etsimistä tehokkaalla tavalla. Erinomaisen käyttökelpoinen
LisätiedotSalausmenetelmät LUKUTEORIAA JA ALGORITMEJA. Veikko Keränen, Jouko Teeriaho (RAMK, 2006) 3. Kongruenssit. à 3.4 Kongruenssien laskusääntöjä
Salausmenetelmät Veikko Keränen, Jouko Teeriaho (RAMK, 2006) LUKUTEORIAA JA ALGORITMEJA 3. Kongruenssit à 3.4 Kongruenssien laskusääntöjä Seuraavassa lauseessa saamme kongruensseille mukavia laskusääntöjä.
LisätiedotSalausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)
Salausmenetelmät Veikko Keränen, Jouko Teeriaho (RAMK, 2006) LUKUTEORIAA JA ALGORITMEJA 3. Kongruenssit à 3.1 Jakojäännös ja kongruenssi Määritelmä 3.1 Kaksi lukua a ja b ovat keskenään kongruentteja (tai
LisätiedotR : renkaan R kääntyvien alkioiden joukko; R kertolaskulla varustettuna on
0. Kertausta ja täydennystä Kurssille Äärelliset kunnat tarvittavat esitiedot löytyvät Algebran kurssista [Alg]. Hyödyksi voivat myös olla (vaikka eivät välttämättömiä) Lukuteorian alkeet [LTA] ja Salakirjoitukset
LisätiedotTekijä Pitkä Matematiikka 11 ratkaisut luku 2
Tekijä Pitkä matematiikka 11 0..017 170 a) Koska 8 = 4 7, luku 8 on jaollinen luvulla 4. b) Koska 104 = 4 6, luku 104 on jaollinen luvulla 4. c) Koska 4 0 = 80 < 8 ja 4 1 = 84 > 8, luku 8 ei ole jaollinen
LisätiedotSalausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)
Salausmenetelmät Veikko Keränen, Jouko Teeriaho (RAMK, 2006) LUKUTEORIAA JA ALGORITMEJA 4. Eulerin a Fermat'n lauseet à 4.1 Alkuluokka a Eulerin -funktio Yleensä olemme kiinnostuneita vain niistä äännösluokista
Lisätiedot802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III. Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO
8038A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 016 Sisältö 1 Irrationaaliluvuista Antiikin lukuja 6.1 Kolmio- neliö- ja tetraedriluvut...................
Lisätiedot802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III
802328A LUKUTEORIAN PERUSTEET OSA III BASICS OF NUMBER THEORY PART III Tapani Matala-aho MATEMATIIKKA/LUTK/OULUN YLIOPISTO SYKSY 2016 LUKUTEORIA 1 / 77 Irrationaaliluvuista Määritelmä 1 Luku α C \ Q on
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 ari.vesanen (at) oulu.fi 5. Rekursio ja induktio Rekursio tarkoittaa jonkin asian määrittelyä itseensä viittaamalla Tietojenkäsittelyssä algoritmin määrittely niin,
Lisätiedot1 Lukujen jaollisuudesta
Matematiikan mestariluokka, syksy 2009 1 1 Lukujen jaollisuudesta Lukujoukoille käytetään seuraavia merkintöjä: N = {1, 2, 3, 4,... } Luonnolliset luvut Z = {..., 2, 1, 0, 1, 2,... } Kokonaisluvut Kun
LisätiedotMatematiikan mestariluokka, syksy 2009 7
Matematiikan mestariluokka, syksy 2009 7 2 Alkuluvuista 2.1 Alkuluvut Määritelmä 2.1 Positiivinen luku a 2 on alkuluku, jos sen ainoat positiiviset tekijät ovat 1 ja a. Jos a 2 ei ole alkuluku, se on yhdistetty
LisätiedotDiofantoksen yhtälön ratkaisut
Diofantoksen yhtälön ratkaisut Matias Mäkelä Matemaattisten tieteiden tutkinto-ohjelma Oulun yliopisto Kevät 2017 Sisältö Johdanto 2 1 Suurin yhteinen tekijä 2 2 Eukleideen algoritmi 4 3 Diofantoksen yhtälön
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 6. Alkeislukuteoria 6.1 Jaollisuus Käsitellään kokonaislukujen perusominaisuuksia: erityisesti jaollisuutta Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,...
Lisätiedot2 j =
1. Modulaariaritmetiikkaa Yksinkertaisissa salausjärjestelmissä käytettävä matematiikka on paljolti lukuteoriaan pohjautuvaa suurten lukujen modulaariaritmetiikkaa (lasketaan kokonaisluvuilla modulo n).
Lisätiedot3. Kongruenssit. 3.1 Jakojäännös ja kongruenssi
3. Kongruenssit 3.1 Jakojäännös ja kongruenssi Tässä kappaleessa esitellään kokonaislukujen modulaarinen aritmetiikka (ns. kellotauluaritmetiikka), jossa luvut tyypillisesti korvataan niillä jakojäännöksillä,
LisätiedotValitse kuusi tehtävää! Kaikki tehtävät ovat 6 pisteen arvoisia.
MAA11 Koe 8.4.013 5 5 1. Luvut 6 38 ja 43 4 jaetaan luvulla 17. Osoita, että tällöin jakojäännökset ovat yhtäsuuret. Paljonko tämä jakojäännös on?. a) Tutki onko 101 alkuluku. Esitä tutkimuksesi tueksi
Lisätiedot= 3 = 1. Induktioaskel. Induktio-oletus: Tehtävän summakaava pätee jollakin luonnollisella luvulla n 1. Induktioväite: n+1
Matematiikan ja tilastotieteen laitos Matematiikka tutuksi Harjoitus 4 Ratkaisuehdotuksia 4-810 1 Osoita induktiolla, että luku 15 jakaa luvun 4 n 1 aina, kun n Z + Todistus Tarkastellaan ensin väitettä
LisätiedotLUKUTEORIA johdantoa
LUKUTEORIA johdantoa LUKUTEORIA JA TODISTAMINEN, MAA11 Lukuteorian tehtävä: Lukuteoria tutkii kokonaislukuja, niiden ominaisuuksia ja niiden välisiä suhteita. Kokonaislukujen maailma näyttää yksinkertaiselta,
LisätiedotMatematiikan tukikurssi, kurssikerta 5
Matematiikan tukikurssi, kurssikerta 5 1 Jonoista Matematiikassa jono (x n ) on yksinkertaisesti järjestetty, päättymätön sarja numeroita Esimerkiksi (1,, 3, 4, 5 ) on jono Jonon i:ttä jäsentä merkitään
Lisätiedot(d) 29 4 (mod 7) (e) ( ) 49 (mod 10) (f) (mod 9)
1. Pätevätkö seuraavat kongruenssiyhtälöt? (a) 40 13 (mod 9) (b) 211 12 (mod 2) (c) 126 46 (mod 3) Ratkaisu. (a) Kyllä, sillä 40 = 4 9+4 ja 13 = 9+4. (b) Ei, sillä 211 on pariton ja 12 parillinen. (c)
LisätiedotEsitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta:
MATP00 Johdatus matematiikkaan Ylimääräisten tehtävien ratkaisuehdotuksia. Osoita, että 00 002 < 000 000. Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa. Lähdetään sieventämään epäyhtälön
LisätiedotJohdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma
Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten Ratkaisuehdotelma Tehtävä 1 1. Etsi lukujen 4655 ja 12075 suurin yhteinen tekijä ja lausu se kyseisten lukujen lineaarikombinaationa ilman laskimen
LisätiedotAlgebra I, harjoitus 5,
Algebra I, harjoitus 5, 7.-8.10.2014. 1. 2 Osoita väitteet oikeiksi tai vääriksi. a) (R, ) on ryhmä, kun asetetaan a b = 2(a + b) aina, kun a, b R. (Tässä + on reaalilukujen tavallinen yhteenlasku.) b)
LisätiedotMatematiikassa väitelauseet ovat usein muotoa: jos P on totta, niin Q on totta.
Väitelause Matematiikassa väitelauseet ovat usein muotoa: jos P on totta, niin Q on totta. Tässä P:tä kutsutaan oletukseksi ja Q:ta väitteeksi. Jos yllä oleva väitelause on totta, sanotaan, että P:stä
Lisätiedota k+1 = 2a k + 1 = 2(2 k 1) + 1 = 2 k+1 1. xxxxxx xxxxxx xxxxxx xxxxxx
x x x x x x x x Matematiikan johdantokurssi, syksy 08 Harjoitus, ratkaisuista Hanoin tornit -ongelma: Tarkastellaan kolmea pylvästä A, B ja C, joihin voidaan pinota erikokoisia renkaita Lähtötilanteessa
LisätiedotInduktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa. väite P(n) on totta kaikille n = 0,1,2,...
Induktiotodistus Induktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa väite P(n) on totta kaikille n = 0,1,2,.... Tässä väite P(n) riippuu n:n arvosta. Todistuksessa
LisätiedotLukuteorian kertausta
Lukuteorian kertausta Jakoalgoritmi Jos a, b Z ja b 0, niin on olemassa sellaiset yksikäsitteiset kokonaisluvut q ja r, että a = qb+r, missä 0 r < b. Esimerkki 1: Jos a = 60 ja b = 11, niin 60 = 5 11 +
LisätiedotJuuri 11 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty
Kertaus K1. a) 72 = 2 36 = 2 2 18 = 2 2 2 9 = 2 2 2 3 3 = 2 3 3 2 252 = 2 126 = 2 2 63 = 2 2 3 21 = 2 2 3 3 7 = 2 2 3 2 7 syt(72, 252) = 2 2 3 2 = 36 b) 252 = 72 3 + 36 72 = 36 2 syt(72, 252) = 36 c) pym(72,
LisätiedotDiskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9
Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon
Lisätiedoton Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään
5. Primitiivinen alkio 5.1. Täydennystä lukuteoriaan. Olkoon n Z, n 2. Palautettakoon mieleen, että kokonaislukujen jäännösluokkarenkaan kääntyvien alkioiden muodostama osajoukko Z n := {x Z n x on kääntyvä}
LisätiedotJäännösluokat. Alkupala Aiemmin on tullut sana jäännösluokka vastaan. Tarkastellaan
Jäännösluokat LUKUTEORIA JA TODIS- TAMINEN, MAA Alkupala Aiemmin on tullut sana jäännösluokka vastaan. Tarkastellaan lukujoukkoja 3k k Z =, 6, 3, 0, 3, 6, 3k + k Z =,,,,, 7, 3k + k Z =,,,,, 8, Osoita,
LisätiedotA = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:
11 Determinantti Neliömatriisille voidaan laskea luku, joka kertoo muun muassa, onko matriisi kääntyvä vai ei Tätä lukua kutsutaan matriisin determinantiksi Determinantilla on muitakin sovelluksia, mutta
LisätiedotKannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:
8 Kanta Tässä luvussa tarkastellaan aliavaruuden virittäjävektoreita, jotka muodostavat lineaarisesti riippumattoman jonon. Merkintöjen helpottamiseksi oletetaan luvussa koko ajan, että W on vektoreiden
LisätiedotR 1 = Q 2 R 2 + R 3,. (2.1) R l 2 = Q l 1 R l 1 + R l,
2. Laajennettu Eukleideen algoritmi Määritelmä 2.1. Olkoot F kunta ja A, B, C, D F [x]. Sanotaan, että C jakaa A:n (tai C on A:n jakaja), jos on olemassa K F [x] siten, että A = K C; tällöin merkitään
LisätiedotSalausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)
Salausmenetelmät Veikko Keränen, Jouko Teeriaho (RAMK, 2006) LUKUTEORIAA JA ALGORITMEJA. Jaollisuus à. Tekijöihin jako Kerrataan aluksi muutamia merkintöjä: on luonnollisten lukujen joukko, on kokonaislukujen
Lisätiedot7 Vapaus. 7.1 Vapauden määritelmä
7 Vapaus Kuten edellisen luvun lopussa mainittiin, seuraavaksi pyritään ratkaisemaan, onko annetussa aliavaruuden virittäjäjoukossa tarpeettomia vektoreita Jos tällaisia ei ole, virittäjäjoukkoa kutsutaan
LisätiedotMiten osoitetaan joukot samoiksi?
Miten osoitetaan joukot samoiksi? Määritelmä 1 Joukot A ja B ovat samat, jos A B ja B A. Tällöin merkitään A = B. Kun todistetaan, että A = B, on päättelyssä kaksi vaihetta: (i) osoitetaan, että A B, ts.
Lisätiedot2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)
Approbatur 3, demo, ratkaisut Sovitaan, että 0 ei ole luonnollinen luku. Tällöin oletusta n 0 ei tarvitse toistaa alla olevissa ratkaisuissa. Se, pidetäänkö nollaa luonnollisena lukuna vai ei, vaihtelee
LisätiedotVapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.
Vapaus Määritelmä Oletetaan, että v 1, v 2,..., v k R n, missä n {1, 2,... }. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee: jos c 1 v 1 + c 2 v 2 +
LisätiedotTee konseptiin pisteytysruudukko! Muista kirjata nimesi ja ryhmäsi. Lue ohjeet huolellisesti!
MAA11 Koe.4.014 Jussi Tyni Tee konseptiin pisteytysruudukko! Muista kirjata nimesi ja ryhmäsi. Lue ohjeet huolellisesti! A-Osio: Ei saa käyttää laskinta. MAOL saa olla alusta asti käytössä. Maksimissaan
LisätiedotMS-A0402 Diskreetin matematiikan perusteet
MS-A0402 Diskreetin matematiikan perusteet Osa 4: Modulaariaritmetiikka Riikka Kangaslampi 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Modulaariaritmetiikka Jakoyhtälö Määritelmä 1 Luku
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut
Lisätiedota b 1 c b n c n
Algebra Syksy 2007 Harjoitukset 1. Olkoon a Z. Totea, että aina a 0, 1 a, a a ja a a. 2. Olkoot a, b, c, d Z. Todista implikaatiot: a) a b ja c d ac bd, b) a b ja b c a c. 3. Olkoon a b i kaikilla i =
Lisätiedot4 Matemaattinen induktio
4 Matemaattinen induktio Joidenkin väitteiden todistamiseksi pitää näyttää, että kaikilla luonnollisilla luvuilla on jokin ominaisuus P. Esimerkkejä tällaisista väitteistä ovat vaikkapa seuraavat: kaikilla
LisätiedotVaihtoehtoinen tapa määritellä funktioita f : N R on
Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: 1 (Alkuarvot) Ilmoitetaan funktion arvot
LisätiedotJohdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö
Johdatus diskreettiin matematiikkaan Harjoitus 5, 14.10.2015 1. Ratkaise rekursioyhtälö x n+4 2x n+2 + x n 16( 1) n, n N, alkuarvoilla x 1 2, x 2 14, x 3 18 ja x 4 42. Ratkaisu. Vastaavan homogeenisen
LisätiedotMatematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista
Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen
LisätiedotJOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT
JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT Tehtävä 1. (i) Olkoot n, d 1 ja d n. Osoita, että (k, n) d jos ja vain jos k ad, missä (a, n/d) 1. (ii) Osoita, että jos (m j, m k ) 1 kun
LisätiedotRekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on
Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: Rekursio Funktio f : N R määritellään yleensä
Lisätiedot(iv) Ratkaisu 1. Sovelletaan Eukleideen algoritmia osoittajaan ja nimittäjään. (i) 7 = , 7 6 = = =
JOHDATUS LUKUTEORIAAN (syksy 07) HARJOITUS 7, MALLIRATKAISUT Tehtävä Etsi seuraavien rationaalilukujen ketjumurtokehitelmät: (i) 7 6 (ii) 4 7 (iii) 65 74 (iv) 63 74 Ratkaisu Sovelletaan Eukleideen algoritmia
LisätiedotJohdatus matematiikkaan
Johdatus matematiikkaan Luento 4 Mikko Salo 4.9.2017 Sisältö 1. Rationaali ja irrationaaliluvut 2. Induktiotodistus Rationaaliluvut Määritelmä Reaaliluku x on rationaaliluku, jos x = m n kokonaisluvuille
LisätiedotTestaa taitosi 1: Lauseen totuusarvo
Testaa taitosi 1: Lauseen totuusarvo 1. a) Laadi lauseen A (B A) totuustaulu. b) Millä lauseiden A ja B totuusarvoilla a-kohdan lause on tosi? c) Suomenna a-kohdan lause, kun lause A on olen vihainen ja
Lisätiedot4.3. Matemaattinen induktio
4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta
LisätiedotTämän luvun tarkoituksena on antaa perustaidot kompleksiluvuilla laskemiseen sekä niiden geometriseen tulkintaan. { (a, b) a, b œ R }
7 Kompleksiluvut Tämän luvun tarkoituksena on antaa perustaidot kompleksiluvuilla laskemiseen sekä niiden geometriseen tulkintaan. 7.1 Kompleksilukujen määritelmä Määritelmä 7.1.1. Kompleksilukujen joukko
LisätiedotMatriisi-vektori-kertolasku, lineaariset yhtälöryhmät
Matematiikan peruskurssi K3/P3, syksy 25 Kenrick Bingham 825 Toisen välikokeen alueen ydinasioita Alla on lueteltu joitakin koealueen ydinkäsitteitä, joiden on hyvä olla ensiksi selvillä kokeeseen valmistauduttaessa
Lisätiedot2017 = = = = = = 26 1
JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 2, MALLIRATKAISUT Tehtävä 1. Sovella Eukleiden algoritmia ja (i) etsi s.y.t(2017, 753) (ii) etsi kaikki kokonaislukuratkaisut yhtälölle 405x + 141y = 12. Ratkaisu
LisätiedotVapaus. Määritelmä. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee:
Vapaus Määritelmä Oletetaan, että v 1, v 2,..., v k R n, missä n {1, 2,... }. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee: jos c 1 v 1 + c 2 v 2 +
LisätiedotAlgebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 6 (8 sivua) OT. 1. a) Määritä seuraavat summat:
Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 6 (8 sivua) 21.2.-25.2.2011 OT 1. a) Määritä seuraavat summat: [2] 4 + [3] 4, [2] 5 + [3] 5, [2] 6 + [2] 6 + [2] 6, 7 [3]
LisätiedotAlgebran perusteet. 44 ϕ(105) = (105). Näin ollen
Algebran perusteet Harjoitus 4, ratkaisut kevät 2016 1 a) Koska 105 = 5 21 = 3 5 7 ja 44 = 2 2 11, niin syt(44, 105) = 1 Lisäksi ϕ(105) = ϕ(3 5 7) = (3 1)(5 1)(7 1) = 2 4 6 = 48, joten Eulerin teoreeman
LisätiedotJohdatus matemaattiseen päättelyyn
Johdatus matemaattiseen päättelyyn Maarit Järvenpää Oulun yliopisto Matemaattisten tieteiden laitos Syyslukukausi 2015 1 Merkintöjä Luonnollisten lukujen joukko N on joukko N = {1, 2, 3,...} ja kokonaislukujen
Lisätiedot811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu
811312A Tietorakenteet ja algoritmit 2017-2018, Harjoitus 2 ratkaisu Harjoituksen aiheena on algoritmien oikeellisuus. Tehtävä 2.1 Kahvipurkkiongelma. Kahvipurkissa P on valkoisia ja mustia kahvipapuja,
LisätiedotOrtogonaalisen kannan etsiminen
Ortogonaalisen kannan etsiminen Lause 94 (Gramin-Schmidtin menetelmä) Oletetaan, että B = ( v 1,..., v n ) on sisätuloavaruuden V kanta. Merkitään V k = span( v 1,..., v k ) ja w 1 = v 1 w 2 = v 2 v 2,
LisätiedotKoodausteoria, Kesä 2014
Koodausteoria, Kesä 2014 Topi Törmä Matemaattisten tieteiden laitos 3.5 Reedin-Mullerin koodit Olkoon tässä kappaleessa F = F2 = Z2 ja n = 2 m. Määritellään avaruuteen F n kertolasku koordinaateittain:
Lisätiedot802118P Lineaarialgebra I (4 op)
802118P Lineaarialgebra I (4 op) Tero Vedenjuoksu Oulun yliopisto Matemaattisten tieteiden laitos 2012 Lineaarialgebra I Yhteystiedot: Tero Vedenjuoksu tero.vedenjuoksu@oulu.fi Työhuone M206 Kurssin kotisivu
Lisätiedot7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi
7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi Z p [x]/(m), missä m on polynomirenkaan Z p [x] jaoton polynomi (ks. määritelmä 3.19).
LisätiedotTodistusmenetelmiä Miksi pitää todistaa?
Todistusmenetelmiä Miksi pitää todistaa? LUKUTEORIA JA TO- DISTAMINEN, MAA11 Todistus on looginen päättelyketju, jossa oletuksista, määritelmistä, aksioomeista sekä aiemmin todistetuista tuloksista lähtien
LisätiedotLUKUTEORIAN ALKEET HELI TUOMINEN
LUKUTEORIAN ALKEET HELI TUOMINEN Sisältö 1. Lukujärjestelmät 2 1.1. Kymmenjärjestelmä 2 1.2. Muita lukujärjestelmiä 2 1.3. Yksikäsitteisyyslause 4 2. Alkulukuteoriaa 6 2.1. Jaollisuus 6 2.2. Suurin yhteinen
LisätiedotKanta ja Kannan-vaihto
ja Kannan-vaihto 1 Olkoon L vektoriavaruus. Äärellinen joukko L:n vektoreita V = { v 1, v 2,..., v n } on kanta, jos (1) Jokainen L:n vektori voidaan lausua v-vektoreiden lineaarikombinaationa. (Ts. Span(V
LisätiedotKonvergenssilauseita
LUKU 4 Konvergenssilauseita Lause 4.1 (Monotonisen konvergenssin lause). Olkoon (f n ) kasvava jono Lebesgueintegroituvia funktioita. Asetetaan f(x) := f n (x). Jos f n
LisätiedotJohdatus matemaattiseen päättelyyn
Johdatus matemaattiseen päättelyyn Maarit Järvenpää Oulun yliopisto Matemaattisten tieteiden laitos Syyslukukausi 2015 1 Merkintöjä 2 Todistamisesta 2 3 Joukko-oppia Tässä luvussa tarkastellaan joukko-opin
LisätiedotTAMPEREEN YLIOPISTO Pro gradu -tutkielma. Liisa Ilonen. Primitiiviset juuret
TAMPEREEN YLIOPISTO Pro gradu -tutkielma Liisa Ilonen Primitiiviset juuret Matematiikan ja tilastotieteen laitos Matematiikka Joulukuu 2009 Tampereen yliopisto Matematiikan ja tilastotieteen laitos ILONEN,
LisätiedotLineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus
Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus 1 / 51 Lineaarikombinaatio Johdattelua seuraavaan asiaan (ei tarkkoja määritelmiä): Millaisen kuvan muodostaa joukko {λv λ R, v R 3 }? Millaisen
Lisätiedotja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2
Johdatus diskreettiin matematiikkaan Harjoitus 4, 7.10.2015 1. Olkoot c 0, c 1 R siten, että polynomilla r 2 c 1 r c 0 on kaksinkertainen juuri. Määritä rekursioyhtälön x n+2 = c 1 x n+1 + c 0 x n, n N,
LisätiedotDeterminantti 1 / 30
1 / 30 on reaaliluku, joka on määritelty neliömatriiseille Determinantin avulla voidaan esimerkiksi selvittää, onko matriisi kääntyvä a voidaan käyttää käänteismatriisin määräämisessä ja siten lineaarisen
LisätiedotDemo 1: Simplex-menetelmä
MS-C2105 Optimoinnin perusteet Malliratkaisut 3 Ehtamo Demo 1: Simplex-menetelmä Muodosta lineaarisen tehtävän standardimuoto ja ratkaise tehtävä taulukkomuotoisella Simplex-algoritmilla. max 5x 1 + 4x
Lisätiedot1 Tätä dokumenttia, Ketjumurtoluvuista.pdf, saa levittää vain yhdessä lähdekoodinsa
Sisältö Eukleideen algoritmi Jakoyhtälö positiivisille kokonaisluvuille 2 2 Eukleideen algoritmi 2 3 Laajennettu Eukleideen algoritmi 3 2 Ketjumurtoluvut 4 2 Irrationaalilukujen ketjumurtolukukehitelmä
Lisätiedotf(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))
Määritelmä: on O(g(n)), jos on olemassa vakioarvot n 0 > 0 ja c > 0 siten, että c g(n) kun n > n 0 O eli iso-o tai ordo ilmaisee asymptoottisen ylärajan resurssivaatimusten kasvun suuruusluokalle Samankaltaisia
LisätiedotMatriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.
Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.
LisätiedotTenttiin valmentavia harjoituksia
Tenttiin valmentavia harjoituksia Alla olevissa harjoituksissa suluissa oleva sivunumero viittaa Juha Partasen kurssimonisteen siihen sivuun, jolta löytyy apua tehtävän ratkaisuun. Funktiot Harjoitus.
Lisätiedot4. Eulerin ja Fermat'n lauseet
4. Eulerin ja Fermat'n lauseet 4.1 Alkuluokka ja Eulerin φ-funktio Yleensä olemme kiinnostuneita vain niistä jäännösluokista modulo m, joiden alkiot ovat suhteellisia alkulukuja luvun m kanssa. Näiden
LisätiedotVektoreiden virittämä aliavaruus
Vektoreiden virittämä aliavaruus Määritelmä Oletetaan, että v 1, v 2,... v k R n. Näiden vektoreiden virittämä aliavaruus span( v 1, v 2,... v k ) tarkoittaa kyseisten vektoreiden kaikkien lineaarikombinaatioiden
Lisätiedot(2n 1) = n 2
3.5 Induktiotodistus Induktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa väite P (n) on totta kaikille n =0, 1, 2,... Tässä väite P (n) riippuu n:n arvosta. Todistuksessa
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 27.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 27.1.2010 1 / 37 If-käsky toistokäskyn sisällä def main(): HELLERAJA = 25.0 print "Anna lampotiloja, lopeta -300:lla."
LisätiedotAvaruuden R n aliavaruus
Avaruuden R n aliavaruus 1 / 41 Aliavaruus Esimerkki 1 Kuva: Suora on suljettu yhteenlaskun ja skalaarilla kertomisen suhteen. 2 / 41 Esimerkki 2 Kuva: Suora ei ole suljettu yhteenlaskun ja skalaarilla
LisätiedotLineaarialgebra a, kevät 2018 Harjoitusta 5 Maplella
Lineaarialgebra a, kevät 2018 Harjoitusta 5 Maplella Tehtävä 1. Determinantti = 0, kun 2 samaa saraketta restart; with(linalg): Induktiotodistus matriisin koon ( ) suhteen. Väite. Jos ja n x n -matriisissa
LisätiedotRistitulolle saadaan toinen muistisääntö determinantin avulla. Vektoreiden v ja w ristitulo saadaan laskemalla determinantti
14 Ristitulo Avaruuden R 3 vektoreille voidaan määritellä pistetulon lisäksi niin kutsuttu ristitulo. Pistetulosta poiketen ristitulon tulos ei ole reaaliluku vaan avaruuden R 3 vektori. Ristitulosta on
Lisätiedot1. Mikä on lukujen 10, 9, 8,..., 9, 10 summa? 2. Mikä on lukujen 10, 9, 8,..., 9, 10 tulo? =?
Tehtävät 1 1. Mikä on lukujen 10, 9, 8,..., 9, 10 summa? 2. Mikä on lukujen 10, 9, 8,..., 9, 10 tulo? 3. 16 125 250 =? 4. Kirjoita lausekkeeseen sulut siten, että tulos on nolla. 2 + 2 2 2 : 2 + 2 2 2
LisätiedotDerivaatat lasketaan komponenteittain, esimerkiksi E 1 E 2
MS-C50 Osittaisdifferentiaaliyhtälöt Harjoitukset syksy 07. Oletetaan että vektorikenttä E E E E : R R on kaksi kertaa jatkuvasti derivoituva E C R. Näytä että E E. Derivaatat lasketaan komponenteittain
LisätiedotKaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.
Kombinatoriikka, kesä 2010 Harjoitus 1 Ratkaisuehdotuksia (RT (5 sivua Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle. 1. Osoita, että vuoden
LisätiedotOrtogonaalinen ja ortonormaali kanta
Ortogonaalinen ja ortonormaali kanta Määritelmä Kantaa ( w 1,..., w k ) kutsutaan ortogonaaliseksi, jos sen vektorit ovat kohtisuorassa toisiaan vastaan eli w i w j = 0 kaikilla i, j {1, 2,..., k}, missä
LisätiedotRollen lause polynomeille
Rollen lause polynomeille LuK-tutkielma Anna-Helena Hietamäki 7193766 Matemaattisten tieteiden tutkinto-ohjelma Oulun yliopisto Kevät 015 Sisältö 1 Johdanto 1.1 Rollen lause analyysissä.......................
LisätiedotLineaariset kongruenssiyhtälöryhmät
Lineaariset kongruenssiyhtälöryhmät LuK-tutkielma Jesse Salo 2309369 Matemaattisten tieteiden laitos Oulun yliopisto Sisältö Johdanto 2 1 Kongruensseista 3 1.1 Kongruenssin ominaisuuksia...................
Lisätiedotd Z + 17 Viimeksi muutettu
5. Diffien ja Hellmanin avaintenvaihto Miten on mahdollista välittää salatun viestin avaamiseen tarkoitettu avain Internetin kaltaisen avoimen liikennöintiväylän kautta? Kuka tahansahan voi (ainakin periaatteessa)
LisätiedotLukuteoria. Eukleides Aleksandrialainen (n. 300 eaa)
Lukuteoria Lukuteoria on eräs vanhimmista matematiikan aloista. On sanottu, että siinä missä matematiikka on tieteiden kuningatar, on lukuteoria matematiikan kuningatar. Perehdymme seuraavassa luonnollisten
Lisätiedot802354A Algebran perusteet Luentorunko Kevät Työryhmä: Markku Niemenmaa, Kari Myllylä, Topi Törmä
802354A Algebran perusteet Luentorunko Kevät 2017 Työryhmä: Markku Niemenmaa, Kari Myllylä, Topi Törmä Sisältö 1 Lukuteoriaa 3 1.1 Jakoalgoritmi ja alkuluvut.................... 3 1.2 Suurin yhteinen tekijä......................
Lisätiedot1 Lineaariavaruus eli Vektoriavaruus
1 Lineaariavaruus eli Vektoriavaruus 1.1 Määritelmä ja esimerkkejä Olkoon K kunta, jonka nolla-alkio on 0 ja ykkösalkio on 1 sekä V epätyhjä joukko. Oletetaan, että joukossa V on määritelty laskutoimitus
LisätiedotMatematiikan peruskurssi 2
Matematiikan peruskurssi Tentti, 9..06 Tentin kesto: h. Sallitut apuvälineet: kaavakokoelma ja laskin, joka ei kykene graaseen/symboliseen laskentaan Vastaa seuraavista viidestä tehtävästä neljään. Saat
LisätiedotDiskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8
Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8 Tuntitehtävät 1-2 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 5- loppuviikon harjoituksissa. Kotitehtävät 3-4 tarkastetaan loppuviikon
Lisätiedot