Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa
|
|
- Merja Tuominen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 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 Z; 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 etsitty lineaarikombinaatio d = syt(a, b) = r n-1 = u a + v b. Aloitetaan 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 Z 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 r i = r i-2 q i r i-1 = u i a + v i b,
2 Salakirjoitus 2 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) syt(a, b) = r n-1 = u a + v b Algoritmin 2.2 oikeellisuuden todistus: Aluksi huomataan, että luvut r n, n 1, muodostavat ei-negatiivisten kokonaislukujen aidosti vähenevän jonon. Näin ollen algoritmin toiminta päättyy vähintään a iteraation jälkeen (käytännössä huomattavan paljon nopeammin).
3 Salakirjoitus 3 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ä. Toisaalta 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 ' Z + ) 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ä. Siis syt(r i-2, r i-1 ) = syt(r i-1, r i ), aina kun 1 i n, ja näin ollen syt(a, b) = syt(r -1, r 0 ) = syt(r 0, r 1 ) = syt(r 1, r 2 ) = = syt(r n-1, r n ) = syt(r n-1, 0) = 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 = {u k-2 a + v k-2 b} - q k {u k-1 a + v k-1 b} = (u k-2 q k u k-1 ) a + (v k-2 q k v k-1 ) 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: u i v i u i-1 v i-1 = -q i u i-1 v i-1 u i-2 v i-2. Koska u -1 = 1; u 0 = 0; v -1 = 0; v 0 = 1; meillä on u 0 v 0 u -1 v -1 = Kun i = 1, saadaan u 1 v 1 u 0 v 0 = -q Seuravassa askeleessa saadaan u 2 v 2 u 1 v 1 = -q u 1 v 1 u 0 v 0 = -q ( -q ). Tässä kahden viimeisen matriisin ympärillä olevat sulkumerkit voidaan jättää merkitsemättä matriisien liitäntä- eli
4 Salakirjoitus 4 assosiatiivisuusominaisuuksien nojalla. Lopullisessa lineaarikombinaatiossa syt(a, b) = r n-1 = u a + v b 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: u n-1 v n-1 u n-2 v n-2 = -q n q q 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ä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, v 2 = v 0 q 2 v 1 = 1 1*( 2) = 3
5 Salakirjoitus = 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 Salakirjoitus 6 Clear[f]; f[{a_, b_}] := If[a b, {a, "=", Floor[a / b], "*", b, "+", a - Floor[a / b] * b}, f[{b, a}]]; f[{a_, _, _, _, b_, _, r_}] := Module[{myPr = ""}, If[r 0, Print["\nTässä syt = ", b, ".", "\n\ntulos nähdään Eukleideen algoritmilla seuraavasti:\n"]; mypr, {b, "=", Floor[b / r], "*", r, "+", b - Floor[b / r] * r}]]; Esimerkki: Clear[Eukleides]; Eukleides[a_, b_] := ( Print[ (steps = Rest[NestWhileList[f, {a, b}, (# =!= "") &]]) // TableForm]; Print["Viimeinen nollasta eroava jakojäännös = ", Last[steps[[Length[steps] - 2]]], " = syt(", a, ", ", b, ")."] ) Eukleides[1234, 2345] 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 = syt(1234, 2345). Palautetaan seuraavaksi mieleen yllä todistetun laajennetun algoritmin pseudokoodi: Algoritmi 2.2 Laajennettu Eukleideen algoritmi syöte a b > 0
7 Salakirjoitus 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[jako]; jako[{a_, b_}] := If[a b, Print[r -1, "=", a, "=", q 1, "*", r 0, "+", r 1, "=", Floor[a / b], "*", b, "+", a - Floor[a / b] * b, "; ", r 1, "=", a - Floor[a / b] * b, "=", u 1, "a +", v 1, "b", " = ", "(", 1-0, ")*", a, " + (", 0 - Floor[a / b], ")*", b]; {1, a, Floor[a / b], b, a - Floor[a / b] * b, {0, 1}, 1-0, a, 0 - Floor[a / b], b} (* = {indeksi=n=1,r -1,q 1, r 0,r 1,{u 0,v 0 },u 1 =u -1 -q 1 *u 0,a,v 1 =v -1 -q 1 *v 0,b} *), jako[{b, a}]]; jako[ {n_, r1_, q3_, r2_, r3_, {u2_, v2_}, u3_, a_, v3_, b_}] := Module[{i, q4, r4, u4, v4, nextstep}, If[r3 0, "", (q4 = Floor[r2 / r3]; r4 = r2 - q4 * r3; u4 = u2 - q4 * u3; v4 = v2 - q4 * v3; nextstep = {i = n + 1, r2, q4, r3, r4, {u3, 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", " = ", "(", u4, ")*", a, " + (", v4, ")*", b]; nextstep)]];
8 Salakirjoitus 8 Clear[laajennettuEukleides]; laajennettueukleides[a_, b_] := (Print["Laajennettu Eukleideen algoritmi toimii seuraavasti:"]; Print["a = ", Max[a, b], ", b = ", Min[a, b]]; lastrelevantstep = NestWhile[jako, {a, b}, (# =!= "") &, 1, Infinity, -2]; Print["Viimeinen nollasta eroava jakojäännös = ", lastrelevantstep[[5]], " = syt(", a, ", ", b, ")."]; Print["Lineaarikombinaatio: ", lastrelevantstep[[5]], " = u a + v b = ", "(", lastrelevantstep[[7]], ")*", Max[a, b], " + (", lastrelevantstep[[9]], ")*", Min[a, b], "."];); Esimerkki: laajennettueukleides[123,368] laajennettueukleides[123, 368] 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 = (1)*368 + (-2)*123 r 0 =123=q 2 *r 1 +r 2 =1*122+1; r 2 =1=u 2 a +v 2 b = (-1)*368 + (3)*123 r 1 =122=q 3 *r 2 +r 3 =122*1+0; r 3 =0=u 3 a +v 3 b = (123)*368 + (-368)*123 Viimeinen nollasta eroava jakojäännös = 1 = syt(123, 368). Lineaarikombinaatio: 1 = u a + v b = (-1)*368 + (3)*123. Tarkistuslaskelmia luvuilla a ja b sekä tuloksena saaduilla luvuilla u ja v: lastrelevantstep (* siis {i,r i-2,q i,r i-1,r i,{u i-1,v i-1 },u i,a,v i,b}, kun i = n-1 *) {2, 123, 1, 122, 1, {1, -2}, -1, 368, 3, 123}
9 Salakirjoitus 9 Print["Lineaarikombinaatio u a + v b = ", "(", lastrelevantstep[[-4]], ")*", lastrelevantstep[[-3]], " + (", lastrelevantstep[[-2]], ")*", lastrelevantstep[[- 1]], " tuottaa sievennettynä luvun:"]; lastrelevantstep[[- 4]] * lastrelevantstep[[- 3]] + lastrelevantstep[[-2]] * lastrelevantstep[[-1]] Lineaarikombinaatio u a + v b = (-1)*368 + (3)*123 tuottaa sievennettynä luvun: 1 Tämähän on aivan oikein. Esimerkki: laajennettueukleides[34527, ] laajennettueukleides[34 527, ] 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 = (1)* (-529)* r 0 =34 527=q 2 *r 1 +r 2 =3* ; r 2 = 7941=u 2 a +v 2 b = (-3)* (1588)* r 1 =8862=q 3 *r 2 +r 3 =1* ; r 3 = 921=u 3 a +v 3 b = (4)* (-2117)* r 2 =7941=q 4 *r 3 +r 4 =8* ; r 4 = 573=u 4 a +v 4 b = (-35)* (18 524)* r 3 =921=q 5 *r 4 +r 5 =1* ; r 5 =348 =u 5 a +v 5 b = (39)* ( )* r 4 =573=q 6 *r 5 +r 6 =1* ; r 6 =225 =u 6 a +v 6 b = (-74)* (39 165)*34 527
10 Salakirjoitus 10 r 5 =348=q 7 *r 6 +r 7 =1* ; r 7 =123 =u 7 a +v 7 b = (113)* ( )* r 6 =225=q 8 *r 7 +r 8 =1* ; r 8 =102 =u 8 a +v 8 b = (-187)* (98 971)* r 7 =123=q 9 *r 8 +r 9 =1*102+21; r 9 =21 =u 9 a +v 9 b = (300)* ( )* r 8 =102=q 10 *r 9 +r 10 =4*21+18; r 10 =18= u 10 a +v 10 b = (-1387)* ( )* r 9 =21=q 11 *r 10 +r 11 =1*18+3; r 11 =3= u 11 a +v 11 b = (1687)* ( )* r 10 =18=q 12 *r 11 +r 12 =6*3+0; r 12 =0=u 12 a +v 12 b = ( )* ( )* Viimeinen nollasta eroava jakojäännös = 3 = syt(34 527, ). Lineaarikombinaatio: 3 = u a + v b = (1687)* ( )* Tarkistuslaskelmia luvuilla a ja b sekä tuloksena saaduilla luvuilla u ja v: lastrelevantstep (* siis {i,r i-2,q i,r i-1,r i,{u i-1,v i-1 },u i,a,v i,b}, kun i = n-1 *) {11, 21, 1, 18, 3, {-1387, }, 1687, , , }
11 Salakirjoitus 11 Print["Lineaarikombinaatio u a + v b = ", "(", lastrelevantstep[[-4]], ")*", lastrelevantstep[[-3]], " + (", lastrelevantstep[[-2]], ")*", lastrelevantstep[[- 1]], " tuottaa sievennettynä luvun:"]; lastrelevantstep[[- 4]] * lastrelevantstep[[- 3]] + lastrelevantstep[[-2]] * lastrelevantstep[[-1]] Lineaarikombinaatio u a + v b = (1687)* ( )* 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[34 527, ] 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 = syt(34 527, ).
12 Salakirjoitus 12 Esimerkki: a = Fibonacci[100]; b = Fibonacci[99]; laajennettueukleides[ , ] a = Fibonacci[100] b = Fibonacci[99] laajennettueukleides[a, b] Laajennettu Eukleideen algoritmi toimii seuraavasti: a = , b = r -1 = =q 1 *r 0 +r 1 =1* ; r 1 = =u 1 a +v 1 b = (1)* (-1)* r 0 = =q 2 *r 1 +r 2 =1* ; r 2 = =u 2 a +v 2 b = (-1)* (2)* r 1 = =q 3 *r 2 +r 3 =1* ; r 3 = =u 3 a +v 3 b = (2)* (-3)* 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 = ( )* ( )* r 95 =3=q 97 *r 96 +r 97 =1*2+1; r 97 =1=u 97 a +v 97 b = ( )* ( )* r 96 =2=q 98 *r 97 +r 98 =2*1+0; r 98 =0=u 98 a +v 98 b = ( )* ( )* Viimeinen nollasta eroava jakojäännös = 1 = syt( , ). Lineaarikombinaatio: 1 = u a + v b = ( )* ( )*
13 Salakirjoitus 13 Tarkistuslaskelmia luvuilla a ja b sekä tuloksena saaduilla luvuilla u ja v: lastrelevantstep (* siis {i,r i-2,q i,r i-1,r i,{u i-1,v i-1 },u i,a,v i,b}, kun i = n-1 *) {97, 3, 1, 2, 1, { , }, , , , } Print["Lineaarikombinaatio u a + v b = ", "(", lastrelevantstep[[-4]], ")*", lastrelevantstep[[-3]], " + (", lastrelevantstep[[-2]], ")*", lastrelevantstep[[- 1]], " tuottaa sievennettynä luvun:"]; lastrelevantstep[[- 4]] * lastrelevantstep[[- 3]] + lastrelevantstep[[-2]] * lastrelevantstep[[-1]] Lineaarikombinaatio u a + v b = ( )* ( )* 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[100], b = Fibonacci[99] ] Tässä syt = 1. Tulos nähdään Eukleideen algoritmilla seuraavasti: = 1 * = 1 *
14 Salakirjoitus = 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 * = 1 * = 1 * = 1 *
15 Salakirjoitus = 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 = syt( , ). 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 * (mod ).
Salausmenetelmät / Osa I Veikko Keränen, Jouko Teeriaho (RAMK, 2006)
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
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. 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ä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ä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ä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ä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ä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ä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ätiedot2 j =
1. Modulaariaritmetiikkaa Yksinkertaisissa salausjärjestelmissä käytettävä matematiikka on paljolti lukuteoriaan pohjautuvaa suurten lukujen modulaariaritmetiikkaa (lasketaan kokonaisluvuilla modulo n).
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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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 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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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 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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ä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ätiedotLiite 2. Ryhmien ja kuntien perusteet
Liite 2. Ryhmien ja kuntien perusteet 1. Ryhmät 1.1 Johdanto Erilaisissa matematiikan probleemoissa törmätään usein muotoa a + x = b tai a x = b oleviin yhtälöihin, joissa tuntematon muuttuja on x. Lukujoukkoja
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ä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ä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ä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ä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ä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ä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ä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ä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ätiedotrm + sn = d. Siispä Proposition 9.5(4) nojalla e d.
9. Renkaat Z ja Z/qZ Tarkastelemme tässä luvussa jaollisuutta kokonaislukujen renkaassa Z ja todistamme tuloksia, joita käytetään jäännösluokkarenkaan Z/qZ ominaisuuksien tarkastelussa. Jos a, b, c Z ovat
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ä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ä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ätiedotKurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.
HY / Avoin ylioisto Johdatus yliopistomatematiikkaan, kesä 201 Harjoitus 7 Ratkaisut palautettava viimeistään perjantaina 26.6.201 klo 16.00. Huom! Luennot ovat salissa CK112 maanantaista 1.6. lähtien.
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ätiedotKurssin loppuosassa tutustutaan matriiseihin ja niiden käyttöön yhtälöryhmien ratkaisemisessa.
7 Matriisilaskenta Kurssin loppuosassa tutustutaan matriiseihin ja niiden käyttöön yhtälöryhmien ratkaisemisessa. 7.1 Lineaariset yhtälöryhmät Yhtälöryhmät liittyvät tilanteisiin, joissa on monta tuntematonta
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ätiedotVastaoletuksen muodostaminen
Vastaoletuksen muodostaminen Vastaoletus (Antiteesi) on väitteen negaatio. Sitä muodostettaessa on mietittävä, mitä tarkoittaa, että väite ei ole totta. Väite ja vastaoletus yhdessä sisältävät kaikki mahdolliset
Lisätiedot(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.
Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Tietyn ominaisuuden samuus -relaatio on ekvivalenssi; se on (1) refleksiivinen,
LisätiedotMatematiikan tukikurssi, kurssikerta 3
Matematiikan tukikurssi, kurssikerta 3 1 Epäyhtälöitä Aivan aluksi lienee syytä esittää luvun itseisarvon määritelmä: { x kun x 0 x = x kun x < 0 Siispä esimerkiksi 10 = 10 ja 10 = 10. Seuraavaksi listaus
LisätiedotTietojenkäsittelyteorian alkeet, osa 2
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. syyskuuta 2016 Sisällys vs Ovat eri asioita! Älä sekoita niitä. Funktiot Funktio f luokasta A luokkaan B, merkitään
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ätiedotLUKUTEORIA 1 JYVÄSKYLÄN YLIOPISTO
LUKUTEORIA 1 JYVÄSKYLÄN YLIOPISTO Matemaatikot eivät ole tyytyväisiä tietäessään asioita neljästä miljoonasta tai neljästä miljardista kokonaisluvusta. He haluavat tietää asioita jokaisesta äärettömän
Lisätiedot1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.
Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i
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ätiedot