Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b?

Relevanta dokument
Sats 2.1 (Kinesiska restsatsen) Låt n och m vara relativt prima heltal samt a och b två godtyckliga heltal. Då har ekvationssystemet

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18:00

Kinesiska restsatsen

Föreläsning 9: Talteori

Offentlig kryptering

Några satser ur talteorin

Talteori (OBS en del frågor gäller diofantiska ekvationer och de tas inte upp från och med hösten 2012)

Föreläsning 9: Talteori

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18: Svar: Ja, det gäller, vilket kan visas på flera sätt (se nedan).

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret Lektion 1

ARITMETIK 3. Stockholms universitet Matematiska institutionen Avd matematik Torbjörn Tambour

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.

IX Diskret matematik

Linjära ekvationssystem. Avsnitt 1. Vi ska lära oss en metod som på ett systematiskt sätt löser alla linjära ekvationssystem. Linjära ekvationssystem

MA 11. Hur starkt de binder. 2 Reella tal 3 Slutledning 4 Logik 5 Mängdlära 6-7 Talteori 8 Diofantiska ekvationer 9 Fördjupning och kryptografi

Lösningar till utvalda uppgifter i kapitel 5

Delbarhet och primtal

Andragradsekvationer. + px + q = 0. = 3x 7 7 3x + 7 = 0. q = 7

MA2047 Algebra och diskret matematik

Kapitel 2: De hela talen

Hela tal LCB 1999/2000

1. Ekvationer 1.1. Ekvationer och lösningar. En linjär ekvation i n variabler x 1,..., x n är en ekvation på formen. 2x y + z = 3 x + 2y = 0

Quadratic Sieve. Avancerade algoritmer (2D1440) 8/ Joel Brynielsson, TCS/Nada (f.d. D95)

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

10! = =

Lösning till tentamensskrivning på kursen Diskret Matematik, moment A, för D2 och F, SF1631 och SF1630, den 10 januari 2011 kl

Några saker som jag inte hann: Ur trigonometriska ettan kan vi uttrycka och i termer av. Vi delar båda led i trig. 1:an med :

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 11 april, 2002

2320 a. Svar: C = 25. Svar: C = 90

Låt n vara ett heltal som är 2 eller större. Om a och b är två heltal så säger vi att. a b (mod n)

Högstadiets matematiktävling 2016/17 Finaltävling 21 januari 2017 Lösningsförslag

Vi börjar med en viktig definition som inte finns i avsnitt 3.4 i [EG], den formella definitionen av kongruens modulo n:

Mer om analytisk geometri

Tentamen TMV210 Inledande Diskret Matematik, D1/DI2

Diofantiska ekvationer

Lösningsförslag till övningsuppgifter, del V

Prov 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad a) i) Nollställen för polynomet 2x 2 3x 1:

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 22 augusti, 2001

Lösningar och kommentarer till uppgifter i 1.1

mattetankar Reflektion kring de olika svaren

Linnéuniversitetet Institutionen för datavetenskap, fysik och matematik Per-Anders Svensson

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

Resträkning och ekvationer

Högpresterande. Särskilt begåvade

Algoritmer och datastrukturer H I HÅKAN S T R Ö M B E R G N I C K L A S B R A N D E F E L T

Optimering av depåpositioner för den minimala bensinförbrukningen i öknen

Vektorgeometri för gymnasister

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

, S(6, 2). = = = =

Bonusmaterial till Lära och undervisa matematik från förskoleklass till åk 6. Ledning för att lösa problemen i Övningar för kapitel 5, sid

SAMMANFATTNING TATA82 Diskret matematik

Summera godtyckligt antal tal. Programkonstruktion. Moment 4 Om rekursion. Fullständigt resonemang för summeringen. Analys av summeringsproblemet

Moment Viktiga exempel Övningsuppgifter I Ö5.1b, Ö5.2b, Ö5.3b, Ö5.6, Ö5.7, Ö5.11a

RSA-kryptering och primalitetstest

Lite om räkning med rationella uttryck, 23/10

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Kompletterande lösningsförslag och ledningar, Matematik 3000 kurs A, kapitel 4. b) = 3 1 = 2

2 = 3 = 1. ekvationssystem är beskriven som de vektorer X =

PENNO. över din ekonomi

DEL I. Matematiska Institutionen KTH

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

TANA17 Matematiska beräkningar med Matlab

MYSTERIER SOM ÅTERSTÅR

M0043M Integralkalkyl och Linjär Algebra, H14, Linjär Algebra, Föreläsning 11

29 Det enda heltalet n som satisfierar båda dessa villkor är n = 55. För detta värde på n får vi x = 5, y = 5.

Programmeringsmetodik DV1 Programkonstruktion 1. Moment 4 Om rekursion. PK1&PM1 HT-06 moment 4 Sida 1 Uppdaterad

Kvalificeringstävling den 30 september 2008

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

Tillämpad Programmering (ID1218) :00-13:00

Konsten att lösa icke-linjära ekvationssystem

MA2047 Algebra och diskret matematik

Hundrarutor, markörer, penna och miniräknare. På följande sidor finns hundrarutor för kopiering.

Manual matematiska strategier. Freja. Ettan

Algoritmer, datastrukturer och komplexitet

1 Minkostnadsflödesproblem i nätverk

ALGEBRAISKA STRUKTURER. Juliusz Brzezinski

Rekursion. Koffman & Wolfgang kapitel 5

Funktioner. Räta linjen

3, 6, 9, 12, 15, 18. 1, 2, 4, 8, 16, 32 Nu är stunden inne, då vill vill summera talen i en talföljd

SF2715 Applied Combinatorics// Extra exercises and solutions, Part 2

Linjära ekvationssystem

2 Derivator. 2.1 Dagens Teori. Figur 2.1: I figuren ser vi grafen till funktionen. f(x) = x

RSA-kryptografi för gymnasiet. Jonas Gustafsson & Isac Olofsson

Linjär algebra. Lars-Åke Lindahl

Algebra och kryptografi Facit till udda uppgifter

Teori :: Diofantiska ekvationer v1.2

a) A = 3 B = 4 C = 9 D = b) A = 250 B = 500 C = a) Tvåhundrasjuttiotre b) Ettusenfemhundranittio

Övningshäfte 2: Induktion och rekursion

Dagens Teori. 2.1 Talteori Största gemensamma delaren. Vilket är det största tal som samtidigt är delare till de båda talen.

Matematisk kommunikation för Π Problemsamling

reella tal x i, x + y = 2 2x + z = 3. Här har vi tre okända x, y och z, och vi ger dessa okända den naturliga

Delprov G: Skriftliga räknemetoder

Matematik 5 Kap 2 Diskret matematik II

x = som är resultatet av en omskrivning av ett ekvationssystemet som ursprungligen kunde ha varit 2x y+z = 3 2z y = 4 11x 3y = 5 Vi får y z

MATEMATIKPROV, LÅNG LÄROKURS BESKRIVNING AV GODA SVAR

Algebra II. Isac Hedén och Johan Björklund

a = a a a a a a ± ± ± ±500

Optimering av bränsledepåer för effektiv resa i öknen

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del II

Moment Viktiga exempel Övningsuppgifter

Transkript:

Euklides algoritm för största gemensamma delaren Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b? Euklides har kommit på en metod (algoritm) för detta: 0. Börja med att skriva ner de två talen a och b på en rad. Nu upprepar vi detta: 1. Titta på raden vi har just skrivit ner, där vi har talen x och y. 2. Vi är färdiga om...: något av talen är 0: Slutgiltiga svaret är det andra talet. ( något av talen är 1: Slutgiltiga svaret är då 1. talen är lika: Slutgiltiga svaret är då det talet.) 3. Om vi inte är färdiga än, då skapar vi en ny rad met två nya tal: om x > y, då är de nya talen (x y) och y om x < y, då är de nya talen x och (y x) 4. Gå tillbaka till 1. Exempel 1 : Största gemensamma delaren av 6 och 21 är 3: 6 21 (start) 6 15 (15 = 21 6) 6 9 (9 = 15 6) 6 3 (3 = 9 6) 3 3 (3 = 6 3) vi är färdiga och svaret är 3. Exempel 2 : Största gemensamma delaren av 8 och 21 är 1:

8 21 (start) 8 13 (13 = 21 8) 8 5 (9 = 13 8) 3 5 (3 = 8 5) 3 2 (2 = 5 3) 1 2 (1 = 3 2) vi är färdiga och svaret är 1. Varför fungerar detta? Vi behöver visa två saker: (1) processen kommer att ta slut någon gång, och (2) när den tar slut producerar den rätt svar. För att visa (1) räcker det med att konstatera att summan av de två talen på varje rad alltid är positiv. Dessutom minskar summan av talen på varje rad i varje steg. Alltså finns det bara ett begränsat antal steg vi kan ta innan vi är färdiga. För att visa (2) konstaterar vi först att största gemensamma delaren av de två talen på varje rad är samma som den största gemensamma delaren av de två talen på föregående raden. Detta är så för att vi vet att: gcd(x,y) = gcd(x y,y) = gcd(x,y x) Vi har alltså hittat en invariant. Största gemensamma delaren av de två talen på varje rad är alltså samma som den största gemensamma delaren av de två talen vi började med: a och b. Dessutom producerar vi rätt svar när vi slutar därför att: gcd(0,x) = x gcd(x,0) = x gcd(x,x) = x gcd(1,x) = 1 gcd(x,1) = 1

Vi kan göra en liten ändring i metoden. I stället för att hela tiden räkna ut a b eller b a kan vi istället räkna ut a `rest` b eller b `rest` a. Detta är korrekt eftersom a `rest` b är ju resultatet man får när man drar av b från a upprepade gånger. Detta leder till metoden som beskrivs i boken. Detta är också metoden man ska använda när man implementerar detta i ett program. (När man räknar för hand har man sällan så stora tal att det lönar sig.) Pulverizer / Bezouts identitet Givet a, b. Vi vill lösa följande ekvation: a u + b v = gcd(a,b) Där u och v måste vara heltal! För att hitta en lösning föreslår boken att man kör Euklides algoritm baklänges. Jag beskriver en annan metod här som jag finner enklare. Man börjar med att göra tabellen som tillhör att räkna gcd:n av a och b. Denna består utav 2 kolumner som vi kallar för A och B. (Överst i kolumn A skriver vi a, och överst i kolumn B skriver vi b.) Sen lägger man till 2 kolumner på vänster sidan, och 2 kolumner på höger sidan. I de vänstra 2 kolumnerna skriver vi värden på u och v sådant att a u + b v blir lika med talet som står på motsvarande rad i kolumn A. Och i de högre 2 kolumnerna skriver vi värden på u och v sådant att a u + b v blir lika med talet som står på motsvarande rad i kolumn B. I de vänstra 2 kolumnerna börjar vi således med (1,0) eftersom a 1 + b 0 = a. Och i de högre 2 kolumnerna börjar vi med (0,1) eftersom a 0 + b 1 = b. I varje rad subtraherar vi antingen de vänstra kolumnerna från de högre, eller tvärtom, beroende på vad vi gjorde i gcd tabellen. Resultatet är att vi har en lösning (u,v) för alla tal som förekommer i gcd tabellen! Inklusive gcd(a,b), som var det vi ville ha. Bäst är att titta på några exempel.

Exempel 1. Vi vill lösa 6u + 21v = 3. Vi tar gcd tabellen för gcd(6,21), och lägger till 2 kolumner på vänstersidan och 2 kolumner på högersidan. u v u v 1 0 6 21 0 1 (start!) 6 15 1 1 21 6, alltså (0,1) (1,0) = ( 1,1) 6 9 2 1 15 6, alltså ( 1,1) (1,0) = ( 2,1) 6 3 3 1 9 6, alltså ( 2,1) (1,0) = ( 3,1) 3 3 Jag skriver när värdena är samma som raden ovan. Vi kan sluta räkna när vi har nått en rad där gcd:n finns med (3 i detta fall). Du kan kolla att (u,v) kolumnerna har värden så att 6u + 21v är lika med respektive A och B kolumnen: 6 1 + 21 0 = 6 0 6 + 1 21 = 21 ( 1) 6 + 1 21 = 15 ( 2) 6 + 1 21 = 9 ( 3) 6 + 1 21 = 3 Alltså har vi hittat en lösning: u= 3, v=1. Exempel 2. Vi vill lösa 8u + 21v = 1. Vi tar gcd tabellen för gcd(8,21), och lägger till 2 kolumner på vänstersidan och 2 kolumner på högersidan. u v u v 1 0 8 21 0 1 (start) 8 13 1 1 21 8, alltså (0,1) (1,0) = ( 1,1) 8 5 2 1 31 8, alltså ( 1,1) (1,0) = ( 2,1)

3 1 3 5 8 5, alltså (1,0) ( 2,1) = (3, 1) 3 2 5 2 5 3, alltså ( 2,1) (3, 1) = ( 5,2) 8 3 1 2 3 2, alltså (3, 1) ( 5,2) = (8, 3) Vi kan sluta räkna när vi har nått en rad där gcd:n finns med (1 i detta fall). Du kan kolla att (u,v) kolumnerna har värden så att 8u + 21v är lika med respektive A och B kolumnen: 8 1 + 21 0 = 8 8 0 + 21 1 = 21 8 ( 1) + 21 1 = 13 8 ( 2) + 21 1 = 5 8 3 + 21 ( 1) = 3 8 ( 5) + 21 2 = 2 8 8 + 21 ( 3) = 1 Alltså har vi hittat en lösning: u=8, v= 3. Kinesiska Restsatsen för ett system med 2 kongruenser Givet två tal m1 och m2, som är relativt co prima, dvs. gcd(m1,m2)=1. Givet två konstanter a och b, vill vi lösa följande ekvationssystem: x a (mod m1) x b (mod m2) Vi vill alltså hitta ett heltal x där båda kongruenser gäller. Hur gör man? Vi vet att gcd(m1,m2)=1, med Pulverizern kan vi alltså hitta u och v sådant att: m1 u + m2 v = 1 Från detta kan vi se att: m2 v 1 (mod m1) m1 u 1 (mod m2) Ty m2 v är ju en multipel av m1 från 1, och m1 u är en multipel av m2 från 1.

Nu kan vi definiera: x = a m2 v + b m1 u Vi kan se att (räknat modulo m1): x a m2 v + b m1 u a m2 v ( eftersom b m1 u är delbart med m1 ) a ( eftersom m2 v 1 ) (mod m1) och även (räknat modulo m2): x a m2 v + b m1 u b m1 u ( eftersom a m2 v är delbart med m2 ) b ( eftersom m1 u 1 ) (mod m2) Alltså uppfyller x båda kraven. Har vi en lösning för x, kan vi få flera genom att addera eller subtrahera m1 m2 så många gånger vi vill. (Kolla själv att om x är en lösning, då är x+m1 m2 också en lösning!) Den generella lösningen för x är alltså: x = a m2 v + b m1 u + k m1 m2, för k Z Exempel Tänk om vi har: x 4 (mod 6) x 5 (mod 7) gcd(6,7)=1, alltså har vi lösningar. Vi börjar med att hitt u, v sådant att 6u + 7v = 1 Vi kan använda Pulverizern men vi kan lätt se att u= 1 och v=1 fungerar. En lösning för x är alltså: x = 4 7 1 + 5 6 ( 1) = 28 30 = 2

För att få fram fler lösningar kan vi plussa på eller dra av 6 7=42 så många gånger vi vill. Lösningsmängden är alltså: x {.., 86, 44, 2, 40, 82,.. } Kinesiska Restsatsen för fler än 2 kongruenser Vi kan lösa x för fler än 2 kongruenser också. Detta kan vi göra genom att ta 2 kongruenser, lösa dem, och sen uttrycka resultatet som 1 ny kongruens. Denna process gör att antalet kongruenser går ner med 1. Om vi upprepar den kommer vi till slut bara ha 1 kongruens kvar. Exempel Låt oss lösa följande ekvationssystem: x 4 (mod 6) x 5 (mod 7) x 3 (mod 11) Metoden säger att vi ska ta 2 kongruenser och lösa dem först. Vi har redan löst de översta två, och svaret var: x = 2 + k 42, för k Z Ett annat sätt att skriva detta är x 2 (mod 42) Nu ska vi alltså lösa följande ekvationssystem i stället: x 2 (mod 42) x 3 (mod 11) gcd(42,11)=1, alltså ska vi först hitta u och v sådant att: 42u + 11v = 1 Pulverizern ger oss u=5 och v= 19. Då kan vi lösa x: x = ( 2) 11 ( 19) + 3 42 5 = 1048 Om vi vill ha ett x som är lite mindre kan vi göra så här:

x = x 2 (42 11) = 124 som också är en lösning.