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

Relevanta dokument
Hela tal LCB 1999/2000

Lösningar och kommentarer till uppgifter i 1.1

Talmängder. Målet med första föreläsningen:

1, 2, 3, 4, 5, 6,...

Funktioner. Räta linjen

4. Bestäm alla trippler n 2, n, n + 2 av heltal som samtliga är primtal. 5. Skriv upp additions- och multiplikationstabellen för räkning modulo 4.

Ekvationslösning genom substitution, rotekvationer

Några satser ur talteorin

Linjära ekvationssystem

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

MA2047 Algebra och diskret matematik

Dagens Teori. 1.1 Talteori Några olika talmängder. Definition 1 Heltal kallas de tal som ingår i mängden Z = {..., 3, 2, 1,0,1,2,3,...

Sidor i boken f(x) = a x 2 +b x+c

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

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

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen.

Lösningar till utvalda uppgifter i kapitel 5

y y 1 = k(x x 1 ) f(x) = 3 x

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

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

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

Moment Viktiga exempel Övningsuppgifter

Kapitel 2: De hela talen

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

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

Trigonometri. Sidor i boken 26-34

Talmängder N = {0,1,2,3,...} C = {a+bi : a,b R}

Den räta linjens ekvation

Moment 1.15, 2.1, 2.4 Viktiga exempel 2.2, 2.3, 2.4 Övningsuppgifter Ö2.2ab, Ö2.3. Polynomekvationer. p 2 (x) = x 7 +1.

Den räta linjens ekvation

Föreläsning 9: Talteori

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

Matematik 5 Kap 2 Diskret matematik II

Sidor i boken V.L = 8 H.L. 2+6 = 8 V.L. = H.L.

Resträkning och ekvationer

Ekvationer och system av ekvationer

KOKBOKEN 1. Håkan Strömberg KTH STH

Sidor i boken , , 3, 5, 7, 11,13,17 19, 23. Ett andragradspolynom Ett tiogradspolynom Ett tredjegradspolynom

Moment 4.11 Viktiga exempel 4.32, 4.33 Övningsuppgifter Ö4.18-Ö4.22, Ö4.30-Ö4.34. Planet Ett plan i rummet är bestämt då

Lösningar till udda övningsuppgifter

4 Fler deriveringsregler

ÖVNINGSTENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 10:15-13:15. Torsdagen 20 maj Tentamen består av 4 sidor.

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

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?

Problemlösning (3/5) Lösningar

MMA132: Laboration 2 Matriser i MATLAB

PRIMTALEN, MULTIPLIKATION OCH DIOFANTISKA EKVATIONER

Gamla tentemensuppgifter

Grupper och RSA-kryptering

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 13:15-18:15. Torsdagen 7 juni Tentamen består av 5 sidor.

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

MA2047 Algebra och diskret matematik

Diofantiska ekvationer

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

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)

SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att

Talteori. 1 Grundbegrepp och kongruenser Talföljder och rekursion 6 3 Induktionsbevis Fraktaler.16 Facit.. 18

f(x) = x 2 g(x) = x3 100

Moment 6.1, 6.2 Viktiga exempel Övningsuppgifter T6.1-T6.6

Föreläsning 9: Talteori

x+2y+3z = 14 x 3y+z = 2 3x+2y 4z = 5

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.

Polynomekvationer. p 2 (x) = x x 3 +2x 10 = 0

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

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.

Data, typ, selektion, iteration

Determinant Vi förekommer bokens avsnitt, som handlar om determinanter eftersom de kommer att användas i detta avsnitt. a 11 a 12 a 21 a 22

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

f(x) = x 2 g(x) = x3 100 h(x) = x 4 x x 2 x 3 100

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

Arbeta vidare med aritmetik 2018

Polynomekvationer. p 2 (x) = x x 3 +2x 10 = 0

Repetition inför tentamen

A B A B A B S S S S S F F S F S F S F F F F

Algoritmer, datastrukturer och komplexitet

Gaussiska heltal. Maja Wallén. U.U.D.M. Project Report 2014:38. Department of Mathematics Uppsala University

Matematisk kommunikation för Π Problemsamling

Block 1 - Mängder och tal

Sidor i boken Figur 1: Sträckor

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Repetition av matematik inför kurs i statistik 1-10 p.

SCB :-0. Uno Holmer, Chalmers, höger 2 Ex. Induktiv definition av lista. // Basfall

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 8:15-13:15. Måndag 8 juni Tentamen består av 4 sidor.

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

Lösningar och kommentarer till uppgifter i 3.1

Där a = (1, 2,0), b = (1, 1,2) och c = (0,3, 1) Problem 10. Vilket är det enda värdet hos x för vilket det finns a och b så att

kvoten mellan två på varandra följande tal i en talföljd är konstant alltid lika stor.

Delbarhet och primtal

Låt eleverna lösa uppgifterna med huvudräkning och sedan jämföra med resultatet av ett program, t.ex. print(6 + 4 * 3)

Matematiska uppgifter

.I Minkowskis gitterpunktssats

Lokala mål i matematik

Problemlösning Lösningar

RSA-kryptering och primalitetstest

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).

1. Ange samtliga uppsättningar av heltal x, y, z som uppfyller båda ekvationerna. x + 2y + 24z = 13 och x 11y + 17z = 8.

ger rötterna till ekvationen x 2 + px + q = 0.

Transkript:

Dagens Teori 2.1 Talteori 2.1.1 Största gemensamma delaren Vilket är det största tal som samtidigt är delare till de båda talen 67320 och 7344 Utan elektroniska hjälpmedel är detta inget enkelt problem. Med hjälp av Mathematica kan man ta reda på de två talens faktorer FactorInteger[67320] FactorInteger[7344] Vi får då reda på att 67320 = 2 3 3 2 5 11 17 och att 7344 = 2 4 3 3 17. Gemensamma faktorer för de två talen är då 2 3 3 2 17 = 1224 Talet1224 måste då vara en delare till både67320 och 7334, som vi skriver 1224 67320 och 1224 7334. Vi inser dessutom att 1224 är det största delaren till båda talen. I matematiken skrivs detta gcd(67320, 7334) = 1224 greatest common divisor eller på svenska sgd, största gemensamma delaren. Först några naiva försök att implementera gcd i C 1 int a=180,b=252,i,gcd,ok=0; 2 for(i=1;i<=a;i++) 3 if(a%i==0 && b%i==0) 4 gcd=i; 5 printf("gcd=%d\n",gcd); 6 7 for(i=a;i<=1;i ) 8 if(a%i==0 && b%i==0){ 9 gcd=i; 10 break; 11 } 12 printf("gcd=%d\n",gcd); Håkan Strömberg 1 KTH STH

2.1. TALTEORI 1 i=a; 2 while(!ok) 3 if(a%i==0 && b%i==0) 4 ok=1; 5 else 6 i ; 7 gcd=i; 8 printf("gcd=%d\n",gcd); Ett snabbare, eller mindre resurskrävande sätt att finna gcd(a, b) är att använda Euklides algoritm. Euklides, född cirka 325 f.kr. är en av historiens mest kända matematiker, främst genom Elementa, 13 böcker som sammanfattar den antika geometrin. Det påstås att Elementa är den mesta spridda skriften i Västerlandet näst efter Bibeln. Algorithm 2.1.1: EUKLIDES(a, b) local r,i = 1 r 0 a r 1 b while { r i 0 ri+1 r do i 1 mod r i i i+1 return (r i 1 ) Vi ska titta lite närmare på algoritmen med hjälp av ett exempel Exempel 1 1071 = 1 1029+42 1029 = 24 42+21 42 = 2 21+0 Idén är att starta med det största av talen, 1071, till vänster om likhetstecknet och ta reda på kvot och rest när detta tal divideras med det andra, 1029. I nästa steg flyttas det mindre talet 1029 över till vänstra sidan och vi tar reda på kvot och rest, då detta tal divideras med den tidigare resten 42. I efterföljande steg flyttas tidigare täljare till vänster om likhetstecknet och den nya nämnaren blir den tidigare resten. Detta fortsätter tills resten blir 0. gcd(a,b) är då den sista resten 0. I vårt exempel 21. Vi kan då skriva gcd(1071,1029) = 21. Utför vi algoritmen för vårt inledande exempel Exempel 2 gcd(67320, 7344) = 1224 67320 = 9 7344+1224 7344 = 6 1224+0 Håkan Strömberg 2 KTH STH

1 int gcd(int a,int b){ 2 if(b==0) 3 return a; 4 else 5 return gcd(b,a%b); 6 } 7 int main(void){ 8 printf("%d",gcd(78,21)); 9 } Denna algoritm kan elegant återges i, till exempel C, med hjälp av rekursion, som i exemplet ovan. Något vi återkommer till i kursen Algoritmer och Datastrukturer. Antalet divisioner som måste utföras innan man finner den största gemensamma delaren med hjälp av Euklides algoritm överskrider aldrig fem gånger antalet siffror i det mindre talet. Något som bevisades i början av 1800-talet av Gabriel Lamé. Våra exempel underskrider med god marginal worst case. Relativt prima Definition 1 Om gcd(a,b) = 1 sägs a och b vara relativt prima. De två talen har alltså ingen annan gemensam faktor är 1 Ett märkligt faktum är att sannolikheten p, att två slumpmässigt valda heltal a och b, ska vara relativt prima är p = 6 π 2 LCM Ett närliggande begrepp till gcd är lcm, least common multiple eller på svenska minsta gemensamma multipel. Detta har en koppling till addition av bråk som vi stötte på redan i grundskolan. Till exempel, vilken är minsta gemensamma nämnaren till 1 9 + 5 6 + 1 8 + 7 12 Om man nu faktoriserar alla nämnarna får man 9 = 3 3 6 = 2 3 8 = 2 2 2 12 = 2 2 3 Vi går nu igenom alla förekommande faktorer, (vi har ju här bara två stycken, 2 och 3) och plockar ut så många av dem som det finns i den nämnare där de finns flest av dem. Det leder till lcm(9,6,8,12) = 2 2 2 3 3 = 72. Vi ser nu att 9 72, 6 72, 8 72 och 12 72. Vi har alltså hittat en gemensam nämnare. Att det är den minsta förstår vi, då vi försöker plocka bort en av faktorerna ur 72. Antingen kommer då det nya förslaget till nämnare inte att kunna delas av 9 eller 8. Håkan Strömberg 3 KTH STH

2.1. TALTEORI Exempel 3 Bestäm lcm(34, 51) Vi startar med att faktorisera 34 = 2 17 och 51 = 3 17. Detta leder till Denna sats förenar gcd och lcm Sats 1 för godtyckliga a,b Z lcm(34,51) = 2 3 17 = 102 a b = gcd(a,b) lcm(a,b) Exempel 4 Låt a = 108 och b = 72. Vi faktoriserar och får a = 2 2 3 3 och b = 2 3 3 2. gcd(108,72) = 2 2 3 2 = 36. lcm(108,72) = 2 3 3 3 = 216. Eftersom 108 72 = 36 216 = 7776, så stämmer satsen ovan, åtminstone för dessa två tal. 2.1.2 Kongruenser Exempel 5 Du befinner dig i New York och tänker ringa hem till Stockholm. Du vet att tidsskillnaden är 6 timmar. Just nu är klockan 20 : 00, där du promenerar i Central Park. För att ta reda på om det verkligen är lämpligt att slå en signal gör du följande beräkning, som vi kan kalla klockaritmetik. Först adderar du 20 +6 = 26, sedan dividerar du med 24 och tar reda på resten: 26 2( mod 24). Alltså klockan är 2 : 00 i Stockholm (och eftersom du tänkt ringa till moster Agda, så avstår du) Detta exempel får tjäna som en introduktion till det vi kallar kongruenser. Vi definierar Definition 2 Låt n vara ett positivt heltal. För två givna heltal, a och b, säger vi att a är kongruent till b modulo (eller mod ) n om n (a b). Vi skriver då a b( mod n) Kan också uttryckas som att a och b ger samma rest vid division med n. Ty om så är fallet kan man skriva a = q 1 n+r och b = q 2 n+r. Vi förtydligar med några exempel Exempel 6 23 5( mod 9) 17 13( mod 15) 99 0( mod 11) 11 3( mod 5) 44 0( mod 7) 10 10( mod 1000) Vi testar detta med ett par exempel Håkan Strömberg 4 KTH STH

Exempel 7 a) Då n = 3 a = 35 får vi 35 2( mod 3) (kan också skrivas utan parenteser som vi kommer att göra framöver). Detta är sant eftersom 3 (35 2). b) Då n = 37 a = 435 får vi 435 28( mod 37). Detta är sant eftersom 37 (435 28). Till kongruenser finns följande räkneregler Sats 2 Låt n var ett positivt heltal. Då gäller följande regler där samtliga inblandade tal är heltal. a) Om a b( mod n) så gäller att ca cb( mod n) Om a 1 b 1 ( mod n) och a 2 b 2 ( mod n), så gäller att b) a 1 +a 2 b 1 +b 2 ( mod n) c) a 1 a 2 b 1 b 2 ( mod n) Här kommer två exempel som använder sig av dessa regler: Exempel 8 Vilken rest får man då man dividerar med 9? 12 34+56 78 Då 12 3( mod 9), 34 7( mod 9), 56 2( mod 9) och 78 6( mod 9) kan vi skriva (utan att skriva mod, som kan anses underförstått) 3 7+2 6 21+12 33 6 Detta exempel vill visa att resultatet kan erhållas utan att först beräkna uttrycket till 4776 för att därefter dividera med 9 och ta reda på resten. Kanske blir exemplet med hjälp av dessa regler rentav huvudräkning. Exempel 9 Vilken rest får vi då vi dividerar 15 123 med 7? Här är det i det närmaste omöjligt att att bestämma 15 123, så det ankommer helt och hållet på om vi kan använda reglerna i satsen ovan. 123 123 {}}{{}}{ 15 15... 15 1 1... 1( mod 7) 1 Det är klart, att exemplet är lite tillrättalagt, eftersom 15 1( mod 7) och det blir enkelt att bestämma 1 123. Håkan Strömberg 5 KTH STH

2.1. TALTEORI Minsta icke negativa resten av a modulo m Definition 3 Om m är ett positivt heltal och a är ett heltal, där a = b m+r och 0 r m 1, så är r den minsta icke negativa resten av a modulo m. Om vi bestämmer oss för ett visst tal n, så kan för vilket värde som helst på a talet b bara anta något värdena 0,1,...,n 1. Detta värde på b får vi förresten i C genom satsen b=a%n När a 0( mod n) är ju n (a 0) = n a och if-satser liknande vanliga. if(a%n==0)... I sammanhanget kan man tänka sig ekvationer som till exempel Exempel 10 4711 x( mod 11) Helt enkelt dividerar vi 4711 med 11 och tar reda på resten, med eller utan dator. Resten blir 3 och vi kan skriva 4711 3( mod 11). x = 3. Exempel 11 Är den här ekvationen svårare? x 7( mod 13) Nej, egentligen inte eftersom 7 7( mod 13). a är alltid en lösning till ekvationen x a( mod n). Men det finns väl flera lösningar? Ja, oändligt många: x = 13 n+7 där n är ett heltal vilket som helst, alltså x =..., 19, 6,7,20,33,... Exempel 12 Har denna typ av ekvationer alltid en lösning? Vi tittar på 3x 1( mod 6) och konstaterar att om vi kan hitta ett x, så att 6 3x 1, så har vi också funnit en lösning. Men finns det något sådant x? Vi ser direkt att för olika värden på x så kan vi endast få resten 0 eller 3. Ekvationen har ingen lösning. Ekvationen 3x 0( mod 6) har dock en lösning för varje jämnt x och ekvationen har en lösning för varje udda x. 3x 3( mod 6) Håkan Strömberg 6 KTH STH

Exempel 13 Hur är det med den här ekvationen då? 117 12( mod x) Vi vet direkt att x 13. Dessutom måste x < 117. En idé är förstås att x = 117 12 = 105. Men finns det flera lösningar? Om vi ska testa med tal mellan 13 x 117, vilka är då meningsfulla att testa med? Vi låter ett program testa och kommer fram till följande lösningar x = {15, 21, 35, 105}. Kunde man förutsäga detta resultat? Javisst! Vi vet ju att då a b( mod n) är n (a b). I vårt fall får vi x 105, det vill säga alla x 13 som delar 105 är en lösning till ekvationen. Vi tar fram primfaktorerna till 105 = 3 5 7. Vi ser då att x = 3 5 = 15, x = 3 7 = 21, x = 5 7 = 35 samt x = 3 5 7 = 105 är lösningar till ekvationen. 2.1.3 Olika positionssystem I vår ryggmärg finns inpräntat att när vi ser talet 1234 så tolkar vi det som eller lite vackrare skrivet 1 1000+2 100+3 10+4 1 10 3 +2 10 2 +3 10 1 +4 10 0 Vi använder oss av basen 10, kanske därför att vi råkar ha 10 fingrar. För att klara av att uttrycka alla tal behöver vi 10 siffror eller lika många som basen anger. En annan bas som ligger oss dataloger varmt om hjärtat är 2, med vars hjälp vi kan uttrycka ett tal på binär form. Då behöver vi bara två siffror 0 och 1. Jämför vi dessa baser förstår vi att vi för basen 10 måste lära oss 55 multiplikationer för att behärska multiplikationstabellen. För basen 2 räcker det att kunna 0 1 = 0 0 = 0 och 1 1=1 för att klara av att multiplicera två binära tal. Men istället blir de binära talen längre än de decimala och kanske är det svårare att komma ihåg telefonnumret 7128405 på binär form, 11011001100010101010101 (men kanske är det bara en uppfostringssak). Hur som helst kan man tänka sig vilket heltal som helst > 1 som bas. Om vi har en stor bas > 10 måste vi hitta på tecken för de nya siffrorna. Hexadecimala och oktala baser är vanliga inom datalogin, baserna 16 och 8. För det hexadecimala systemet brukar man använda de vanliga siffrorna upp till 9 och bokstäverna A = 10,B = 11,C = 12,D = 13,E = 14,F = 15 för de övriga siffrorna. Håkan Strömberg 7 KTH STH

2.1. TALTEORI Exempel 14 Här ska vi utföra multiplikation av de två talen 10 och 11 där talen uttryckta i basen 2. 10 10 = 1010 2 och 11 10 = 1011 2 1 0 1 1 1 0 1 0 --------- 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 --------------- 1 1 0 1 1 1 0 Översätter vi nu talet 1101110 2 till basen 10 får vi 1 2 6 +1 2 5 +0 2 4 +1 2 3 +1 2 2 +1 2 1 +0 = 64+32+8+4+2 = 110 En given uppgift i samband med olika baser är att konvertera tal från en bas till en annan. Här har vi en algoritm som översätter ett tal n i basen 10 till basen b. Algorithm 2.1.2: KONVERTERING(n) q n k 0 while q 0 a k q mod b do q q b k k+1 return (a) Tecknen är det sätt på vilket man i matematiken uttrycker heltalsdivision. Exempel 15 Med hjälp av algoritmen ovan ska vi uttrycka talet 25 10 i basen 3. Initiering: b = 3, q = 25, Första varvet: a 0 = 25( mod 3) = 1, q = 8, k = 1, Andra varvet: a 1 = 8( mod 3) = 2, q = 2, k = 2, Tredje varvet: a 2 = 2( mod 3) = 2, q = 0, k = 3. Vi har nu fått 221 3 som vi direkt översätter tillbaka till basen 10 och får 2 3 2 +2 3 1 +1 3 0 = 18+6+1 = 25 Att konvertera från ett binärt till ett hexadecimalt tal är betydligt enklare Håkan Strömberg 8 KTH STH

Exempel 16 Mitt telefonnummer igen 110 1100 1100 0101 0101 0101 Varje grupp om 4 binära siffror utgör en hexadecimal siffra. Till exempel 1010 2 = 10 10 = A 16 och vi får telefonnumret till 6CC555 Just detta nummer är ju lättare att minnas på hexadecimal form än på decimal! 2.1.4 Diofantiska ekvationer Exempel 17 Adam köpte 1 äpple och 2 apelsiner. Totalt fick han betala 9 kronor. Hur mycket kostar ett äpple och hur mycket kostar en apelsin, om vi nu antar att det är styckepriserna som gäller? Vi antar att: Ett äpple kostar x kronor och att en apelsin kostar y kronor. Detta leder till ekvationen y+2x = 9 Vi har alltså två obekanta och endast en ekvation. Från tidigare kurser i matematik har vi lärt oss att det då finns oändligt många lösningar. Ekvationen kan ju skrivas om till y = 2x+9 och vi förstår att vi har funktionen för en rät linje som vi plottar Även om vi kan anta att 10 9 8 7 6 5 4 3 2 1 1 1 2 3 4 5 1 Figur 2.1: priserna för våra frukter är positiva, finns det oändligt många lösningar. Varje punkt på linjen utgör en lösning. På y-axeln avläser vi vad en apelsin kostar och på x-axeln vad ett äpple kostar. Men för diofantiska ekvationer är det bara heltalslösningar som gäller och för att få vårt problem klart definierat skriver vi om frågan: Hur mycket kostar ett äpple och hur mycket kostar en apelsin, i hela kronor, om vi nu antar att det är styckepris som gäller? Håkan Strömberg 9 KTH STH

2.1. TALTEORI Kan vi använda vår graf för att hitta lösningarna? Ja, genom att söka upp de punkter där (vi tror) att linjen skär en gitterpunkt (en punkt med heltalskoordinater). Efter granskning hittar vi punkterna (1,7), (2,5), (3,3) och (4,1). Efter att ha testat dessa i vår ursprungliga ekvation blir vi övertygade om att de utgör lösningar. Eftersom vi antagit att inga priser är negativa återstår att filosofera om punkten (0, 9), som inte är speciellt trolig eftersom Adam då säkert valt fler än ett äpple! Det finns mängder av problem där man endast kan tänka sig heltalslösningar, som till exempel när lösningen är antalet människor, bilar, böcker. Ja allting som slutar att fungera om man tar en del av det. Därför måste diofantiska ekvationer betraktas som lika viktiga som den typ av ekvationer vi stött på i tidigare kurser. 2.1.5 Definition Precis som för vanliga ekvationer finns det diofantiska ekvationer av olika gradtal. Vår inledning ovan är ett exempel på en linjär diofantisk ekvation med två obekanta, som vi generellt kan skriva ax+by = c där a,b och c är heltalskoefficienter. Det är denna typ av ekvationer som vi ska lära oss och lösa här. Om antalet obekanta ökas, men gradtalet för de obekanta fortsätter att vara 1, får vi en linjär diofantisk ekvation av flera obekanta. Ekvationen har n obekanta. a 1 x 1 +a 2 x 2 +...+a n x n = c Betydligt svårare att hitta lösningar blir det om man ökar gradtalet för en eller flera obekanta. Till exempel: x 2 +y 2 = z 2 Känns formeln igen? Just det, Pythagoras sats. Eftersom x,y och z ska vara heltal handlar det om att hitta sidor i den rätvinkliga triangeln, där alla sidornas längder är heltal. Vi känner alla till den egyptiska triangeln med sidorna 3, 4, 5. Det finns oändligt många rätvinkliga trianglar med enbart heltalssidor, 5,12,13 och 8,15,17 är ytterligare två av dessa. Rent allmänt gäller, att då gradtalet är > 1, så finns det ingen generell metod för att lösa ekvationen. Det gör det däremot för linjära diofantiska ekvationer, speciellt med två obekanta, som vi ska ägna oss åt här. Håkan Strömberg 10 KTH STH

2.1.6 Historia Den diofantiska ekvationen har en betydande historia. Den har fått sitt namn av den grekiske matematikern Diofantos som var verksam i Alexandria omkring 250 e.kr. Men den kanske största uppmärksamheten inom området, har Fermats stora sats fått. Han påstod (utan att bevisa) att ekvationen x n +y n = z n inte har några heltalslösningar för något heltal n > 2. I över 350 år försökte många av världens matematiker att bevisa att Fermats förmodan var korrekt, tills Andrew Wiles 1995 till slut lyckades! Som ett tillägg kan nämnas, att innan Wiles lyckades bevisa satsen, hade världens matematikers samlade kraft, lyckats visa att det inte fanns någon lösning för n 125000. 2.1.7 Lösningsmetod Exempel 18 Först ett exempel. Har ekvationen 4x+2y = 13 någon lösning över huvud taget? Nej, vi inser snart, att för vilka värden på x och y vi än väljer så kan vi aldrig få det vänstra ledet att bli udda, än mindre 13. Vi formulerar följande sats Sats 3 Om gcd(a,b) c i den diofantiska ekvationen så saknar ekvationen lösningar ax+by = c Eftersom vårt inledande exempel är lite för enkelt, väljer vi här att lösa ekvationen 6x+9y = 15 Vi ser att gcd(6,9) = 3 15, alltså finns det lösningar. Finns det en, till denna typ av ekvationer, så finns det också oändligt många. Men stopp, i det inledande exemplet påstod vi att ekvationen endast hade fyra eller möjligtvis fem lösningar. Det har den ju, om vi lägger till villkoret, att x,y 0. Lösningsidén bygger på att man ska finna en (vilken som helst) av lösningarna till en annan ekvation (!) och med hjälp av den formulera alla lösningar till den ursprungliga. Håkan Strömberg 11 KTH STH

2.1. TALTEORI Sats 4 Den diofantiska ekvationen ax+by = c där gcd(a,b) = 1 har den allmänna lösningen x = c x 0 n b y = c y 0 +n a för ett godtyckligt heltal n och där (x 0,y 0 ) satisfierar ax 0 +by 0 = 1. Återstår så att visa hur vi finner en lösning vilken som helst. Först och främst konstaterar vi att eftersom gcd(a,b) c så kan vi dividera båda led med gcd(a,b) och fortfarande ha idel heltalskoefficienter. I vårt speciella fall får vi då Det är nu (plötsligt) ekvationen 2x+3y = 5 2x+3y = 1 vi ska finna en lösning till. Vi vet att gcd(a, b) = 1 alltid gäller efter divisionen och därför har denna ekvation också oändligt många lösningar. Det är inte svårt att se att y 0 = 1,x 0 = 1 är en lösning. Efter satsen ovan kan vi nu formulera samtliga lösningar. { x = 5 3n y = 5+2n Det kan ibland vara svårare än här, att hitta den inledande lösningen. Då kan man använda Euklides algoritm, men det går vi inte närmare in på här. Vi avslutar med en diofantisk ekvation av högre gradtal y 2 x 3 = 2 Fransmannen Fermat, som vi berättat om här ovan, påstod att denna ekvation endast har två lösningar x = 3, y = 5 och x = 3, y = 5. Detta bevisades drygt 300 år senare. Detta sagt för att betona att diofantiska ekvationer av högre gradtal kan ha ett ändligt antal lösningar. Här handlar det inte längre om en rät linje utan grafen till funktionen y = x 3 2 Som det alltså visat sig endast gå genom två gitterpunkter (3,5) och (3, 5) Till sist återvänder vi till vårt inledande exempel. Vi löser den ekvationen mest för behovet av repetition. Vi ska alltså lösa ekvationen y+2x = 9 Vi ser att gcd(1,2) = 1 9 och att ingen division är aktuell. Nu ska vi hitta en lösning till ekvationen y+2x = 1. Vi ser ganska enkelt att x = 0 och y = 1 är en lösning. Med hjälp av satsen ovan kan vi nu skriva ner den allmänna lösningen x = 9 0 n 1 = n y = 9 1+n 2 = 9+2n Håkan Strömberg 12 KTH STH

20 15 10 5 2 3 4 5 6 7 Figur 2.2: Sätter vi in n = 0 får vi lösningen x = 0,y = 9. Sätter vi in n = 2 får vi x = 2,y = 5 och för n = 1, 3, 4 får vi resten av lösningar där x,y 0. Många praktiska problem av denna typ löser man, om man endast söker enstaka lösningar, med hjälp av ett C-program. En loop för varje obekant och en if-sats är allt som behövs. Det enda knepiga är att välja intervall för de obekanta. Håkan Strömberg 13 KTH STH

2.1. TALTEORI Mathematica GCD och LCM För att beräkna gcd(123456,654321) skriver man helt enkelt GCD[123456,654321] 3 Lika enkelt är det att använda lcm LCM[123456,654321] 26926617792 123456*654321 80779853376 3*26926617792 80779853376 Allt verkar stämma Positionssystem För att uttrycka ett tal x givet i basen 10 i basen b, till exempel talet 4711 10 i basen 5, skriver man i Mathematica IntegerString[4711,5] 123221 IntegerDigits[4711,5] {1,2,2,3,2,1} I det första fallet levereras en sträng med siffrorna. I det andra en lista Vill man konvertera ett tal, från en bas b till basen 10 använder man FromDigits. Dessutom ett exempel där vi konverterar från basen 2 till basen 3. FromDigits[{1, 1, 1, 0}, 2] 14 IntegerString[FromDigits[{1, 1, 1, 0}, 2], 3] 112 Kongruenser Mod[56,10] 6 Håkan Strömberg 14 KTH STH

Så här löser man kongruensekvationer. Först 4x = 3( mod 7) Reduce[4x==3, Modulus->7] Som svar får vi det minsta positiva heltalet som uppfyller ekvationen x = 6 En lite mer komplicerad ekvation. 4x = 19y( mod 7) Reduce[4x==19y, Modulus->7] Som svar får vi att y = k och x = 3k. Så 25 37( mod x). Vi ska hitta ett x som gör att 25 och 37 hamnar i samma restklass. 37 25 = 12 funkar eftersom 25 = 2 12 + 1 och 37 = 2 12+1. Diofantiska ekvationer För den typ av ekvationer vi studerar använder man funktionen Reduce i kombination med Integers. Ett av våra exempel från teorin får då följande utseende med lösningarna inkluderade: Reduce[6*x+9*y=15,Integers] C[1] Integers && x == 1+3C[1] && y == 1 2C[1] Detta tolkar vi som att C[1] är ett godtyckligt heltal c 1, då blir x = 1+3c 1 och y = 1 2c 1. Men överensstämmer den här lösningen verkligen med den vi fick tidigare? Ja, det gör den, men vi får inte fram samma lösningar, för samma värde på n och c 1. Det finns med andra ord oändligt många sätt att framställa lösningen. Mathematica klarar även linjära diofantiska ekvationer, med fler än två obekanta, som denna x+2y+3z = 123 Reduce[x+2y+3z==123,Integers] Resultatet tolkas som x kan sättas till ett godtyckligt heltal c 1, y till c 1 + 3c 2, där c 2 är ett annat godtyckligt heltal. z kan då bestämmas genom 41 c 1 2c 2. Till exempel c 1 = 123 och c 2 = 456 ger x = 123, y = 1491 och z = 994, stämmer eftersom 123+2 1491+3 ( 994) = 123 Vi ser att lösningen innehåller två variabler, c 1 och c 2. Så länge ekvationen inte har högre gradtal än 1, spelar det ingen roll för Mathematica, hur många obekanta vi har. Den här ekvationen har ingen lösning x 3 +y 3 = z 3 Det visste man redan innan Andrew Wiles bevisade den mer generella Fermats stora sats. Men hur reagerar Mathematica? Vi får följande utskrift Håkan Strömberg 15 KTH STH

2.1. TALTEORI (x y z) in Integers && x == Root[y^3 - z^3 + #1^3 &, 1] som vi inte bryr oss om att tolka. Detta kan inte vara liktydigt med att ingen lösning finns. Detta med tanke på vad vi sagt om svårigheten att lösa diofantiska ekvationer av högre gradtal. Om vi tar ett lägre gradtal som i ekvationen Mathematica klarar att lösa x 2 13y 2 = 3 Reduce[x^2-13y^2==3,Integers] Dock är lösningen för lång för att publicera här. Hur går det då med ekvationen Vi testar Reduce[y^2-x^3=-2,Integers] y 2 x 3 = 2 och får inget svar, vilket bevisar att Mathematica helt enkelt inte klarar av denna ekvation. Vi vet ju att en lösning är x = 3,y = 5. Vi testar nu x 2 +y 2 = z 2 Vi hoppas på en lösning som ska ge oss samtliga pythagoriska trianglar Reduce[x^2+y^2==z^2,Integers] Ja, Mathematica klarar den. Vi får dessa formler där c 1,c 2 och c 3 0 är heltal. x = c 1 (c 2 2 c2 3 ) y = 2c 1 c 2 c 3 z = c 1 (c 2 2 +c2 3 ) Kan se lite jobbigt ut. Vi testar formlerna för c 1 = 1,c 2 = 3,c 3 = 2 och ser vad vi får. som stämmer eftersom 5 2 +12 2 = 13 2 x = 1(9 4) = 5 y = 2 1 3 2 = 12 z = 1(9+4) = 13 Håkan Strömberg 16 KTH STH

Funktioner För att skriva enkla funktioner i Mathematica använder man sig av skrivsättet c[a_,b_]:=sqrt[a^2+b^2] c[3,4] 5 Vad händer här? Solve[c[x,x+1]==5] {{x -> -4}, {x -> 3}} Mathematica löser andragradsekvationen och får rötterna x 1 = 3 och x 2 = 4. x 2 +(x+1) 2 = 5 Vi återkommer till mer komplicerade funktioner snart. Iterationer och listor En lista skrivs i Mathematica med hjälp av måsvingar och kommatecken. a={1,4,7,8,3,-3,23} b={{1,2,3},{4,5,6},{7,8,9}} a är en endimensionell lista med 7 element. b är en lista av listor. En tvådimensionell lista, en matris skulle man kunna säga, med 3 rader och 3 kolumner, 3 3. Man når ett element i listan genom att skriva till exempel a[[3]] som är 7, eller b[[1, 2]] som är 2. b[[2]] ger hela underlistan {4,5,6}. Observera att lägsta index är 1, till skillnad från 0, som i C. Genom 3a {3,12,21,24,9,-9,69} Multiplicerar man alla element i listan med 3. Ska man addera talet 2 till alla element kan man inte skriva a+2 utan måste använda sig av kommandot Table. Table[a[[i]]+2,{i,1,7}] {3,6,9,10,5,-1,25} Map[Sqrt, {9, 16, 64, 100}] {3,4,8,10} Map är ett kommando som får en funktion att verka på en lista. Så här adderar man två lika långa listor Håkan Strömberg 17 KTH STH

2.1. TALTEORI m3={1,2,3}; m4={4,5,6}; m3+m4 {5,7,9} Kommandot Table kan användas för att generera listor. Här några exempel l1=table[2*i,{i,2,7}] {4, 6, 8, 10, 12, 14} l2=table[-1/2+i*1/2,{i,0,4}] {-1/2, 0, 1/2, 1, 3/2} l3=table[i^2,{i,1,7}] {1, 4, 9, 16, 25, 36, 49} l4=table[i*x,{i,2,5}] {2x, 3x, 4x, 5x} l5=table[a,{i,1,6}] {a, a, a, a, a, a} l6=table[2i,{i,4,0,-1}] {8, 6, 4, 2, 0} Förklarar exemplen sig själva? Det är fullt möjligt att ha fler än ett index i en lista. Att med hjälp av Table generera matriser kan gå till så här s1=table[table[a+b,{a,1,3}],{b,1,5}] {{2,3,4},{3,4,5},{4,5,6},{5,6,7},{6,7,8}} s2=table[table[a*b,{a,1,2)],{b,1,4}] {{1,2},{2,4},{3,6},{4,8}} s3=table[a+b,{a,1,3},{b,2,6,2}] {{3,5,7},{4,6,8},{5,7,9}} Man använder alltså nästlade Table, precis som for-satser i C. Sista exemplet visar att man kan ha flera index i samma Table. Slumptal t1=random[integer,{1,6}] Genom denna rad får vi ett slumpmässigt tärningskast. t2=table[random[integer,{2,14}],{i,1,100}] Här får vi en lista med 100 slumpmässiga kort från tvåor (2) och upp till ess (14) Håkan Strömberg 18 KTH STH

Till sist Tänk på att Mathematica minns allt du definierar. Tilldelar du till exempel x ett värde i ett problem. Så minns Mathematica detta värde när du i nästa problem använder variabeln x. För att rensa minnet väljer du under menyrubriken Evaluation, Quit kernel local. När du så småningom vill skriva in flera satser efter varandra vill du kanske inte se resultatet efter varje inskrivet kommando. Avsluta då raden med ett kolon (;). Håkan Strömberg 19 KTH STH

2.1. TALTEORI Teoriuppgifter Problem 1 Förkorta så långt möjligt utan andra hjälpmedel än de regler för delbarhet med 2, 3,..., 11 vi presenterade på förra föreläsningen 1463 2387 Problem 2 I de rutiner vi ovan kallat naiv implementation av Euklides algoritm behövs två divisioner i villkoret a%i && b%i. Vi vill nu bestämma gcd(a,b), a b med någon av de två snabbaste rutinerna. Vad kan man säga om a och b då det totala antalet divisioner är a) = 2a b) < 2a c) så litet som möjligt Problem 3 Om a b och c d båda är förkortade så långt möjligt är då automatiskt förkortat så lång möjligt? ad+bc bd Problem 4 Om a b är förkortat så långt möjligt, är då automatiskt förkortat så långt som möjligt? a 2 b 2 Problem 5 Beräkna för hand med hjälp av Euklides algoritm gcd(53,77) Problem 6 Beräkna för hand med hjälp av Euklides algoritm gcd(858,630) Problem 7 Bestäm gcd(2 7 3 3 5 4 7 2 11 3 17 3,2 4 3 5 5 2 7 2 11 2 13 3 ) Håkan Strömberg 20 KTH STH

genom att direkt skriva ned ett uttryck som du dock inte behöver beräkna Problem 8 Bestäm lcm(2 7 3 3 5 4 7 2 11 3 17 3,2 4 3 5 5 2 7 2 11 2 13 3 ) genom att direkt skriva ned ett uttryck, som du dock inte behöver beräkna Problem 9 Bestäm bara genom att titta på talen gcd(10, 25, 35, 245) Problem 10 Om a 1,a 2...a n är parvis relativt prima. Vad kan man då säga om lcm(a 1,a 2...a n ) Problem 11 Adam på väg till kiosken igen. Den här gången köper han ett antal glasstrutar för 12 kr/styck och ett antal fruktklubbor för 7 kr/styck. Han handlade för 110 kr. Hur många strutar och hur många klubbor köpte han? Den ambitiöse löser problemet på tre sätt a) För hand med angiven metod b) Med hjälp av Mathematica c) Med hjälp av ett C-program Problem 12 Detta är en multiplikationstabell mod 5. Upprätta motsvarande tabell för addition 0 1 2 3 4 0 0 0 0 0 0 1 0 1 2 3 4 2 0 2 4 1 3 3 0 3 1 4 2 4 0 4 3 2 1 Problem 13 Översätt talet 123 10 till binär form Håkan Strömberg 21 KTH STH

2.1. TALTEORI Problem 14 Vad kan man säga om skrivet på binär form? 2 n 1 Problem 15 Vi definierar r = gcd(a,b,c) där a b c, som det största tal som är delare till alla tre talen. Vad kan man säga om storleken på r? Problem 16 Sätt in gränser uttryckta i a och b, där a b i uttrycket lcm(a,b) Problem 17 Beräkna gcd och lcm för talparen a) (8,12) b) (6,10) Vad var det nu som gällde för gcd och lcm? Kontrollera att det stämmer! Problem 18 Bestäm med huvudräkning resten då 7 220 divideras med 8 Problem 19 Om m är ett positivt heltal och a och b är heltal där a b( mod m). Vad kan man då säga om gcd(a, m) och gcd(b, m) Problem 20 Om m är ett positivt heltal och a är relativt prima till m, så är a en invers till a modulo m om aa 1( mod m) Sök på något sätt en invers till 53 modulo 73. Problem 21 Alla barnen som köpte biljett till dagens matinéföreställning betalade det exakta priset med 9 mynt. När kassan räknades samman innehöll den 2183 kr. Hur många besökare hade föreställningen? Vilket var biljettpriset? Håkan Strömberg 22 KTH STH

Problem 22 Vilket är det minsta tal, som när det divideras med 2, som resultat ger en heltalskvadrat och när den divideras med 3, som resultat ger en heltalskub. Problem 23 Vi söker tre positiva heltal vars summa är 25 och vars produkt är 540. Problem 24 Adam köpte grisar från bönderna i trakten och betalade 89 kr styck för dem. Han sålde dem sedan för 225 kr. Han hade, vid årets slut, inte blivit av med alla men vinsten uppgick till 2327 kr. Hur många grisar har han kvar i ladugården om vi vet att han inte har plats för fler än 50 grisar? Problem 25 På myntsamlarnas (numismatikernas) årsmöte hade varje medlem 100 kr i fickan. Ingen av dem hade dock samma uppsättning av mynt och sedlar av valörerna 100, 50, 20, 10, 5, 1. Hur många deltagare kunde det som mest vara? Problem 26 I figuren ser du 15 stenar. Starta från vänster och räkna dem alla upp till 15. Vänd sedan och räkna den 14:e stenen som nummer 16. Räkna vidare ned till sten nummer 1. Vänd igen och starta uppräkningen från den andra stenen. Fortsätt så tills du når talet 221. Vilken sten befinner du dig då på? (Det är förstås fusk att räkna hela vägen. Om du fuskar blir bara frågan: Vilken sten är 12345?) Problem 27 Vad upptäckte den marockanske vetenskapsmannen Ibn al-bannã al-marrãkushi (1256-1321) angående talen 17296 och 18416? Tips: Ta för de två talen reda på alla delare 1...n 1 till talen och summera sedan dessa delare var för sig, så är svaret på frågan uppenbart. Håkan Strömberg 23 KTH STH

2.1. TALTEORI Lösningar Teoriuppgifter Lösning Teoriuppgift 1 Ganska raskt ser man att inget av talen har 2,3,4,5,6,8,9,10 som delare. Återstår att testa 11 och 7 och kanske starta med 11 eftersom den testen är enklare. Efter att ha förkortat med 11 upptäcker man att även 7 är en delare. Till sist återstår endast 19 31 Lösning Teoriuppgift 2 a) gcd(a,b) = 1, b) gcd(a,b) > 1 c) gcd(a,b) = a Lösning Teoriuppgift 3 Eftersom visar till exempel att så inte är fallet ad+bc bd = a b + c d 7 2 + 3 2 = 10 2 Lösning Teoriuppgift 4 a och b har ingen gemensam faktor > 1 då kan inte a 2 och b 2 heller ha det. Svaret är alltså ja. Lösning Teoriuppgift 5 Detta betyder att gcd(77, 53) = 1 77 = 1 53+24 53 = 2 24+5 24 = 4 5+4 5 = 1 4+1 4 = 4 1+0 Lösning Teoriuppgift 6 gcd(858,630) = 6 Lösning Teoriuppgift 7 2 4 3 3 5 2 7 2 11 2 = 64033200 Håkan Strömberg 24 KTH STH

Lösning Teoriuppgift 8 2 7 3 5 5 4 7 2 11 3 13 3 17 3 = 13685076111666960000 Lösning Teoriuppgift 9 gcd(10,25,35,245) = 5 Lösning Teoriuppgift 10 lcm(a 1,a 2...a n ) = a 1 a 2... a n Lösning Teoriuppgift 11 Det finns två lösningar: 1) 1 glasstrut och 14 klubbor 2) 8 glasstrutar och 2 klubbor Lösning Teoriuppgift 12 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 0 2 2 3 4 0 1 3 3 4 0 1 2 4 4 0 1 2 3 Lösning Teoriuppgift 13 1111011 2 Lösning Teoriuppgift 14 Att talet består av n stycken 1:or Lösning Teoriuppgift 15 r a Håkan Strömberg 25 KTH STH

2.1. TALTEORI Lösning Teoriuppgift 16 b lcm bc Lösning Teoriuppgift 17 gcd(8,12) = 4 lcm(8,12) = 24 8 12 = 96 4 24 = 96 gcd(6,10) = 2 lcm(6,10) = 30 8 12 = 60 4 24 = 60 Lösning Teoriuppgift 18 Att avgöra detta genom att först bestämma 7 200 för att sedan dividera resultatet med 8 är opraktiskt. Då 7 1( mod 8). Denna kongruens 220 gånger ger 7 220 ( 1) 220 ( mod 8) som kan skrivas 7 220 = 1( mod 8). Det vill säga divisionen har resten 1. Lösning Teoriuppgift 19 gcd(a,m) = gcd(b,m) Lösning Teoriuppgift 20 Eftersom 16 53 11 71 = 1 är 16 en invers till 56 modulo 71. Vi har alltså att lösa den diofantiska ekvationen 53x+71y = 1 där varje värde på x som löser ekvationen är en invers till 56 modulo 71. Lösning Teoriuppgift 21 Vi startar med att faktorisera 2183 = 37 39. Det fanns alltså, antingen 59 barn som betalade 37 kr eller 37 barn som betalade 59 kr. Om det handlar om 1-kronor (x stycken), 5-kronor (y stycken) och 10-kronor (z stycken) får vi följande två diofantiska ekvationssystem { x+5y+10z = 37 x+y+z = 9 och { x+5y+10z = 59 x+y+z = 9 Med Mathematica får vi Reduce[{x+5y+10z==37, x+y+z==9, x>=0, y>=0, z>=0}, Integers] Reduce[{x+5y+10z==59, x+y+z==9, x>=0, y>=0, z>=0}, Integers] Endast den första av ekvationerna har en lösning x = 2 och y = 7 Svar: 59 barn betalade 37 kr var. Håkan Strömberg 26 KTH STH

Lösning Teoriuppgift 22 Vi har följande diofantiska ekvationssystem att lösa n 2 = a2 n 3 = b3 Vi startar med att lösa ut n, fast det är detta tal vi ska ha tag i, och får: 2a 2 = 3b 3 3b 3 a = 2 3b a = b 2 Om vi vill ha en heltalskvadrat under rottecknet duger b = 6 som ger a = 18. Som i sin tur ger n = 2 18 2 = 3 6 3 = 648. Är vi då säkra på att n = 648 är det minsta n som uppfyller villkoren? b = 24 fungerar också, som ger a = 144 och n = 41472. Betydligt större! Lösning Teoriuppgift 23 Det finns bara en egentlig lösning om vi bortser från ordningen mellan a,b och c. Reduce[{a+b+c==25, a b c==540, a>b, b>c}, Integers] a = 10, b = 9 och c = 6. Utan dator kommer man lite närmare lösningen om man vet att 540 = 2 2 3 3 5 Lösning Teoriuppgift 24 Antag att han sålt x grisar och köpt in y. Med hjälp av raden Reduce[{225x-89y==2327, x>0, y>0}, Integers] får vi svaret x = 23+89k y = 32+225k där k 0. I detta problem måste k = 0 vilket ger x = 23 och y = 32. Han har alltså 9 grisar i ladugården. Väljer vi k = 1 får vi x = 112 och y = 257, vilket ger samma den angivna vinsten, men nu hade inte Adam plats för 145 grisar! Håkan Strömberg 27 KTH STH

2.1. TALTEORI Lösning Teoriuppgift 25 Ett, lite naivt, enkelt C-program 1 #include <stdio.h> 2 int main(void){ 3 int v100,v50,v20,v10,v5,v1,n=0; 4 for(v100=0;v100<=1;v100++) 5 for(v50=0;v50<=2;v50++) 6 for(v20=0;v20<=5;v20++) 7 for(v10=0;v10<=10;v10++) 8 for(v5=0;v5<=20;v5++) 9 for(v1=0;v1<=100;v1++) 10 if(100*v100+50*v50+20*v20+10*v10+5*v5+v1==100) 11 n++; 12 printf("%d\n",n); 13 } Vi får svaret 344 stycken. Jag kan inte komma på något smart sätt att lösa detta problem utan dator. Lösning Teoriuppgift 26 Första stenen kommer att ha ordningsnummer 1,29,57,..., x 1( mod 28). Den 15:e stenen kommer att ha ordningsnummer 15,43,71..., x 15( mod 28). Den andra sten kommer att ha ordningsnummer 2,30,58,..., x 2( mod 28). Men också 28,56,84,... Nu kan vi ställa upp ekvationen 221 y( mod 28). När vi löser den med Mathematica Reduce[221==y,Modulus->28] får vi y = 25. Men någon sten med det ordningsnumret finns det ju inte! Här är även en riktning inblandad ordningsnumret 14 pekar ut samma sten som ordningsnumret 16, bara det att vi är på väg åt olika håll. 25 skulle då betyda sten nummer 5. Lösning Teoriuppgift 27 Med Mathematicas hjälp Total[Select[Range[2, 17295], Mod[17296, #] == 0 &]] Total[Select[Range[2, 18415], Mod[18416, #] == 0 &]] Vi säger att 17296 och 18416 är vänskapliga tal Håkan Strömberg 28 KTH STH

Laboration Laborationsuppgift 1. Listgenerering (1) Använd dina kunskaper om Table för att generera följande listor {4,6,8,10,12,14} {-1/2,0,1/2,1,3/2} {1,4,9,16,25,36,49} {2x,3x,4x,5x} {a,a,a,a,a,a} {8,6,4,2,0} Laborationsuppgift 2. Generera matriser (2) Skriv de kommandon som krävs för att generera följande listor: {{3,4},{4,5},{5,6}} {{1,1,1,1},{2,2,2,2}} {{3,6,9},{5,8,11},{7,10,13},{9,12,15}} Laborationsuppgift 3. Funktionen kvadrat (2) Definiera en funktion kvadrat, som returnerar kvadraten på talet i argumentet, till exempel ger a=kvadrat[3] a = 9. Definiera sedan listan m={1,7,4,2} och skriv ett uttryck med hjälp av funktionen kvadrat i kombination med Map, som returnerar {1,49,16,4}. Laborationsuppgift 4. Avstånd i rummet (2) Koordinaterna till två punkter, p 1 och p 2, i rummet är givna på formen {x,y,z}. Man önskar bestämma avståndet mellan dem med hjälp av formeln d(p 1,p 2 ) = (x 1 x 2 ) 2 +(y 1 y 2 ) 2 +(z 1 z 2 ) 2 Skriv funktionen! Laborationsuppgift 5. Euklides algoritm (3) Skriv ett program i C, som implementerar Euklides algoritm iterativt. Den rekursiva implementationen väntar vi med till kursen Algoritmer och Datastrukturer. Håkan Strömberg 29 KTH STH

2.1. TALTEORI Laborationsuppgift 6. Sant, falskt eller blandat (2) Vilka av följande påstående är alltid sanna, aldrig sanna eller sanna ibland? Om x N som inte delas av primtalet p, så är x p 1 1( mod p) Om, för x N, x p 1 1( mod p) så är p ett primtal Om p inte är ett primtal så är, för x N, x p 1 1( mod p) Om, för x N, x p 1 1( mod p) så är p inte ett primtal. Testa dig fram tills du är tillräckligt övertygad. Laborationsuppgift 7. För vilka n är n p (2) För ett godtyckligt tal n N bestäm p = 1 2 3... (n 1)+1. För vilka värden på n är n p? Undersök n = 2...15 och gör ett antagande om dessa tal Laborationsuppgift 8. Speciella primtal (2) För alla primtal p > 2 gäller att antingen p = 1( mod 4) eller p = 3( mod 4). Vi är på jakt efter primtal p = a 2 +b 2, som alltså kan skrivas som summan av två heltalskvadrater, som till exempel 61 = 5 2 +6 2. Sök upp fler och gör ett antagande om de p du hittar. Laborationsuppgift 9. Vilket tal (1) eller (3) Starta med ett tresiffrigt heltal, där första och sista siffran är olika. Vänd på talet och subtrahera det mindre från det större Vänd på detta resultat och addera. Vilka tal är möjliga som slutresultatet? Du får 3 poäng om du kan visa resultat Håkan Strömberg 30 KTH STH