Dagens Teori 1.1 Talteori 1.1.1 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,...} Definition 2 Naturliga tal kallas de tal som ingår i mängden N = {0,1,2,3,...} Ibland definieras de naturliga talen som mängden {1,2,3,...}, som nog kan betraktas som ännu mer naturligt. Vi håller oss dock till den första definitionen. Definition 3 De rationella talen är reella tal som kan skrivas som a b, där a och b är heltal med b 0. Exempel 1 Dessutom finns mängden av irrationella tal. Dessa tal är varken naturliga tal, heltal eller rationella tal. 2 är ett irrationellt tal. Att detta tal inte är ett heltal inser vi direkt, men kan det inte skrivas som ett rationellt tal? Så här bevisar man att 2 a för några heltal a och b. Vi startar med att anta motsatsen, alltså att 2 är ett rationellt tal. Då kan det skrivas som 2 = a b, där a och b 0 är heltal. Då gäller b 2 = a2 b 2 Vi kan dessutom förutsätta att a och b inte har några gemensamma faktorer, eftersom a b då skulle kunna förkortas. Vi skriver nu ekvationen på formen 2b 2 = a 2. Nu är varje heltal antingen jämnt eller udda. Alla udda tal kan skrivas som 2m+1. Eftersom kvadraten på ett udda tal (2m+1) 2 = 4m 2 +1+4m = 2(2m 2 +2m)+1 är udda följer att a måste vara jämnt. Då kan vi skriva a = 2c och a 2 = 4c 2. Vi får 2b 2 = 4c 2 eller b 2 = 2c 2. På samma sätt kan vi härifrån visa att också b är jämnt. Eftersom vi visat att både a och b måste var jämna skulle bråket kunna förkortas med 2, vilket är en motsägelse och därför är 2 irrationellt. Denna typ av bevis kallas indirekt bevis eller bevis ad absurdum. Håkan Strömberg 1 KTH STH
1.1. TALTEORI 1.1.2 Heltalsdivision Definition 4 Om a och b är naturliga tal och vi kan skriva a = qb+r för icke negativa heltal q och r och där dessutom 0 r < b, så kallar vi q för kvoten och r för resten när a divideras med b. Till exempel Exempel 2 Då a = 23 och b = 5 är q = 4 och r = 3. q och r kan inte anta några andra värden så länge 0 r < b. Vi kan då fastslå att Sats 1 För givet a och b ger heltalsdivisionen unika värden på kvoten q och resten r 1.1.3 Delbarhet Du vet säkert vad som menas med att ett tal är delbart med ett annat. Definition 5 Heltalet n är en delare till heltalet m, om det finns ett heltal q, så att m = q n. Vi säger, att m är delbart med n eller att m är en multipel av n. Vi skriver då n m. Om n inte är en delare till m skriver vi istället n m. Exempel 3 7 är en delare till 84 eftersom 84 = 7 12. Normalt tar vi reda på om n är en delare till m genom att dividera m med n och se om resten blir 0. Om dividerar 92 med 7 får vi kvoten 13 och resten 1 och vi kan skriva 7 92. Delbarhetskriterier. Vi vet att alla heltal n, vars sista siffra är 0 eller 5 har 5 som delare. Det finns delbarhetskriterier även för andra tal är 5. Här listar vi några som möjligtvis kan vara bra att känna till 2 Heltalet m är delbart med 2 då sista siffran är delbar med 2. 3 Heltalet m är delbart med 3 då talets siffersumma är delbar med 3. Talet 123456 har siffersumma 1+2+3+4+5+6 = 21 som är delbar med 3, 21 = 3 7. 4 Heltalet m är delbart med 4 då talet som bildas av de två sista siffrorna är delbart med 4. Alltså är 234567724 delbart med 4. 5 Heltalet m är delbart med 5 då talets sista siffra är 0 eller 5. 6 Heltalet m är delbart med 6 då det är delbart med 2 och 3 enligt respektive kriterier ovan. 7 Heltalet m är delbart med 7 då följande gäller. Stryk entalssiffran s och och subtrahera 2 s från det som återstår av talet m. Är det tal vi nu får delbart med 7 är också talet m delbart med 7. Denna regel kan användas iterativt, upprepat. Vi tar ett exempel: Är 472724 delbart med 7? I första steget får vi 47272 8 = 47264, andra 4726 8 = 4718, tredje 471 16 = 455 och sista 45 10 = 35. Ingen effektiv metod precis, som har tagits med för att göra listan fullständig. Håkan Strömberg 2 KTH STH
8 Heltalet m är delbart med 8 då det tal som bildas av talets tre sista siffror är delbart med 8. Talet 1231346816 är delbart med 8 eftersom vi enkelt kan se att 816 är delbart med 8. 9 Heltalet m är delbart med 9 då talets siffersumma är delbar med 9. Detta kriterium kan användas upprepade gånger, precis som för övrigt kriteriet för 3 kan göras. 4118886 är delbart med 9 eftersom 4+1+1+8+8+8+6 = 36 är delbart med 9. Skulle man inte se det kan man alltså utföra 3+6 = 9 som ju är delbart med 9. 10 Heltalet m är delbart med 10 då talets sista siffra är 0. 11 Heltalet m är delbart med 11 då en lite annorlunda siffersumma är delbar med 11. Den annorlunda siffersumman får man genom att alternera + och. Talet 1358016 är delbart med 11 eftersom 1 3+5 8+0 1+6 = 0 och 0 är delbart med 11. Till delbarhet hör dessa tre satser Sats 2 a) Om för heltalen a,b och c gäller att a b och a c, så gäller också att a (b+c) b) Om för heltalen a,b och c gäller att a b, så gäller också att a bc c) Om a,b,x, och y är heltal och a b och a c, så gäller att a (xb+yc) Vi kommer inte alltid att bevisa de satser vi presenterar. Men dessa har enkla bevis så därför gör vi ett undantag och bevisar Sats 1a Eftersom a b, så har vi lärt oss att det finns ett tal q 1 sådant att b = a q 1. På samma sätt kan vi också skriva c = a q 2. b + c kan nu skrivas b + c = a q 1 + a q 2 eller b+c = a(q 1 +q 2 ). Ett tal som har a som en faktor måste ha a som delare. Exempel 4 Vi ska ta reda på om 17 3451. Om det känns lite tungt kan det vara lite lättare, om vi skriver 17 (3400 + 51). Enligt sats a) ovan kan vi nu undersöka om 17 3400 och om 13 51 var för sig. Det visar sig att 200 17 = 3400 och att 3 17 = 51. Därför vet vi att även 17 3451 Exempel 5 Är 12 100024? Om vi gör omskrivningen 12 (100000 + 24) som leder till 12 100000, eftersom vi direkt ser att 3 100000 och att 12 24 så kan vi konstatera att 12 100024 Exempel 6 Är 123456 4197505? Från divisionskriteriet för 3 får vi att att 3 123456 eftersom 1+2+ 3+4+5+6 = 21 och 3 21. Med hjälp av samma kriterium får vi att 3 4197505 eftersom 4 + 1 + 9 + 7 + 5 + 0 + 5 = 31 och 3 31. Därför är 123456 4197505. Men det är nära, eftersom 34 123456+1 = 41975054 Håkan Strömberg 3 KTH STH
1.1. TALTEORI 1.1.4 Primtal Faktorisering De allra flesta heltal kan uttryckas som en produkt av ett antal mindre heltal. Till exempel 10010 = 13 7 11 2 5. Funktionen FactorInteger[10010] i Mathematica ger oss direkt svaret, i form av en lista av listor {{2, 1}, {5, 1}, {7, 1}, {11, 1}, {13, 1}} Som vi tolkar som 2 1 5 1 7 1 11 1 13 1 = 10010. Vill vi faktorisera talet 540 skriver vi alltså FactorInteger[540] och får listan {{2,2},{3,3},{5,1}} och som tolkas 540 = 2 2 3 3 3 5, eller varför inte skriva 540 = 2 2 3 3 5 De tal som inte kan faktoriseras kallas primtal. Det är inte alltid enkelt att finna faktorerna till ett heltal, speciellt då talet är stort. Inom datalogin anses detta som ett mycket svårt problem och en stor del av den moderna krypologin vilar på detta faktum. Teorin bygger på att multiplicera två stora primtal och få en produkt som även för de snabbaste datorer är för svår att faktorisera inom överskådlig tid. Primtal De tal som inte kan faktoriseras kallas primtal. Definition 6 Ett heltal, p > 1, kallas primtal, om det endast har de positiva delarna 1 och talet p själv. Många av oss kan räkna upp de första tio primtalen 2,3,5,7,11,13,17,19,23,29 utan att fundera särskilt länge. Talet 4711 är inget primtal eftersom 7 4711 och 4711 = 7 673. Aritmetikens fundamentalsats visar att primtalen, är de hela talens byggstenar. Sats 3 Aritmetikens fundamentalsats. Varje positivt heltal kan på ett entydigt sätt skrivas som en produkt av primtal, om man bortser från faktorernas ordning. Redan de gamla grekerna bevisade, för så där en 2300 år sedan, att det finns oändligt många primtal och att de är oregelbundet fördelade, det vill säga att det kan finnas godtyckligt stora gap mellan dem, så kallade primtalsöknar. Sats 4 Det finns oändligt många primtal Bevis Låt n vara ett godtyckligt heltal > 1. Bilda N = 1 2 3... n+1 då är tydligen inget av talen 2,3,...,n delare till N. Den minsta delaren p > 1 till N är alltså > n. Den minsta delaren till ett tal N måste vara ett primtal p som är > n. Hur stort tal n vi än väljer finns det alltså ett tal p, som är > n. Därmed är satsen bevisad. Håkan Strömberg 4 KTH STH
Definition 7 Antalet primtal n definieras med funktionen π(n). Till exempel är π(10) = 4, nämligen talen 2,3,5,7. π(100) = 25 betyder att det finns 25 heltal 100 som är primtal. I Mathematica kan vi använda funktionen PrimePi[n]. Till exempel PrimePi[300] 62 För drygt 100 år sedan visade man att Definition 8 När n växer, närmar sig π(n) funktionen f(n) = n ln(n) 1 Därför är samtidigt n också en uppskattning av det primtal som kommer på plats n/(ln(n) 1) Exempel 7 Hur många primtal finns det som är < 1000. Mathematica ger oss genom kommandot PrimePi[1000] svaret 168. Med hjälp av formeln ovan får vi f(1000) = 1000 ln(1000) 1 169.27 Det 168:e primtalet är 997 och 169:e är 1009, som vi tar reda på genom kommandot Prime[n] i Mathematica. Senare har träffsäkrare funktioner än f(x) ovan tagits fram. 1200 1000 800 600 400 200 2000 4000 6000 8000 10000 Figur 1.1: En till synes ganska bra överensstämmelse eller hur Håkan Strömberg 5 KTH STH
1.1. TALTEORI Eratosthenes såll Även om det inte är möjligt att hitta alla primtal, är det möjligt att hitta alla primtal som är mindre än ett givet tal n. Den mest klassiska metoden kallas Eratosthenes såll. Det kallas såll därför att metoden liksom gallrar ut primtalen. Vår man Eratosthenes levde i Alexandria för ungefär 2200 år sedan. Här ska vi visa hur metoden fungerar för n = 52. Eftersom 1 varken är ett sammansatt tal eller ett primtal startar vi vår uppräkning från talet 2 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Första talet i listan är 2 som är ett primtal. Vi stryker sedan vart annat tal i listan. De är ju alla multipler av 2. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Första icke markerade talet i listan är nu 3, som då måste vara ett primtal. Vi stryker sedan vart tredje tal i hela listan och får 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Inget av de icke strukna talen efter 3 kan vara en multipel av 2 eller 3. Nu är nästa icke markerade tal 5, vilket leder till att vi stryker var femte tal i listan, om de inte redan är strukna. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Under detta varv hände det inte så mycket, men vi vandrar vidare och ser att nästa primtal är 7. Vi stryker alla multipler till 7. Det är bara talet 49 som under detta varv blir struket. I fortsättningen kommer vi inte att stryka några fler tal och får till slut: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Vi vet nu att 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47 är samtliga primtal 52. Här ett C-program som bestämmer alla primtal mindre än 100000. Håkan Strömberg 6 KTH STH
1 #define max 100000 2 int main(void){ 3 int tal[max]={0},i,s,m,start=2,n=0; 4 while(s s<max){ 5 s=start; 6 while(tal[s]>0) 7 s++; 8 m=2; 9 while(s m<max) 10 tal[s m++]=1; 11 start++; 12 } 13 for(i=2;i<max;i++) 14 if(tal[i]==0){ 15 printf("%d ",i); 16 n++; 17 } 18 printf("det finns %d\n",n); 19 } I arrayen tal sätts in 1:or på de platser vars index inte är ett primtal. Så när vi efter whileloopen går igenom tal och stöter på en cell med värdet 0, så vet vi att motsvarande index är ett primtal. Titanic Prime 1984 definierade Samuel Yates att ett titanic prime är ett primtal med åtminstone 1000 siffror. Vid den tidpunkten fanns det bara 110 kända primtal av den storleken. Idag har man funnit fler än 100000. Det största kända primtalet Att finna ett nytt primtal större än alla tidigare kända, har länge varit en stor utmaning. Att inneha världsrekordet en stor ära. Pietro Cataldi räknas som den första egentliga världsrekordhållaren, när han 1588 visade att både 2 17 1 = 131071 och 2 19 1 = 524287 var primtal. 1951 slogs rekordet för sista gången utan hjälp av elektroniska hjälpmedel, då Ferrier visade att var ett primtal. 2 148 +1 17 = 20988936657440586486151264256610222593863921 Därefter har datorerna tillsammans med allt smartare algoritmer varit en förutsättning för att slå nya rekord. Fram till mitten av 90-talet var det superdatorerna som totalt behärskade området. 1996 var det en Cray T94, som fann primtalet 2 1257787 1, med sina 378632 siffror. Men sedan dess är det utan undantag vanliga persondatorer och amatörer, som genom Great Internet Mersenne Prime Search, GIMPS stått för nya rekord. Håkan Strömberg 7 KTH STH
1.1. TALTEORI Det rekord som gällde fram till september 2006 var 2 30402457 1. Talet upptäcktes med en vanlig Pentium 4, 3GHz, maskin 2005. Vi tar reda på hur många siffror talet innehåller. 10 x = 2 30402457 1 log 10 (10 x ) = log 10 ( 2 30402457 1 ) x = log 10 ( 2 30402457 1 ) x 9.1520514988 10 6 Det största kända primtalet kan alltså skrivas 10 9152051, vilket betyder att det har cirka 9 152 051 siffror. Med hjälp av Mathematica kan vi bestämma det exakta antalet siffror och dessutom räkna förekomsten av de olika siffrorna: IntegerLength[2^30402457-1] Med IntegerLength[2^30402457-1] får vi det eftersökta talet 9152052. Genom DigitCount[2^30402457-1] kan vi ta reda på frekvensen av av siffrorna i detta stora tal: Siffra Frekvens 0 913468 1 914272 2 916362 3 913997 4 914191 5 916441 6 915744 7 915905 8 916856 9 914816 Hemsidan http://primes.utm.edu/primes/ berättar mer om jakten på allt större primtal. Där koncentrerar man sig på tal som kan uttryckas som 2 n 1, så kallade Mersenne prime. Definition 9 När 2 n 1 är ett primtal kallas det ett Mersenne prime Håkan Strömberg 8 KTH STH
Mathematica Under kursen ska vi använda programmet Mathematica, som tillhör kategorin CAS (Computer Algebra System). Exempel på andra program i denna kategori är Maple, Derive, Macsyma och REDUCE. Med hjälp av dessa program kan man inte bara utföra numeriska beräkningar utan också räkna med symboler. Normalt får man de exakta rötterna till en ekvation eller f (x) till f(x) uttryckt i elementära funktioner. Här följer en kort introduktion. Aritmetiska uttryck skrivs med +,-,/,* och^ tillsammans med vanliga runda parenteser. Avsluta raden med SHIFT+ENTER. Mathematica serverar resultatet på nästa rad. Precis som i C används decimalpunkt i stället för decimalkomma. 2+3+4+7.1 16.1 Ett lite mer komplicerat uttryck med parenteser (4^2+3^2)/5 5 4 2 +3 2 5 Är talen i uttrycket exakta kommer Mathematica att svara exakt efter att ha reducerat ett rationellt tal så långt möjligt. Ett tal anses inte exakt om det innehåller decimalpunkt Vi skriver in 10/30 och datorn svarar 1/3 10/30 1/3 10.0/30 0.333333 Vill man ha resultatet som ett flyttal använder man N[]. N[10/30] 10/30//N Är man inte nöjd med antalet signifikanta siffror, kan man ange antalet genom en extra parameter N[10/30,40] 0.3333333333333333333333333333333333333333 Vi jämför två skrivsätt och förstår varför det blir skillnad 2^100 1267650600228229401496703205376 N[2^100] 1.26765 10^30 Håkan Strömberg 9 KTH STH
1.1. TALTEORI Vi studerar så några matematiska funktioner, som alla har motsvarande knappar på räknedosan. Kvadratroten skrivs Sqrt[]. Sqrt[9] blir förstås 3. Sqrt[2] förblir 2 eftersom svaret ska vara exakt. För Sqrt[2.0] däremot får man ett närmevärde. Är man inte nöjd med antalet decimaler vet vi redan hur man gör för att få fler. sin skrivs Sin[] och förväntar sig ett argument givet i radianer. Har man en vinkel i grader får man helt enkelt först räkna om det till radianer. Sqrt[9] 3 Sqrt[2.0] 1.41421 N[Sqrt[2],30] 1.41421356237309504880168872421 Sin[Pi/2] 1 N[Sin[20*Pi/180]] 0.34202 Med Log[] avses, precis som i C, det vi i matematikboken läser som ln. Uttrycket Exp(1) betecknar det naturliga tal e. Vill man bestämma log 10 10000, får man lägga till basen som första argument eller använda Log10[] Log[5.] 1.60944 Log[Exp[1]] 1 Log[10,10000] 4 Log10[10000] 4 För att snabba upp användningen i Mathematica har man definierat % som senaste utskrivna resultatet, som man sedan kan använda i nästa inmatning. Två %% syftar på näst senaste resultatet. Följdriktigt blir därför sista uttrycket nedan 3+6 6 = 46659. 1+2 3 %+3 6 %% + %^% 46659 Mathematica minns alla tilldelningar som gjorts sedan man startade. Ett sätt att rensa minnet är att i menyn under Evluation välja Quit Kernel Local. Variabler fungerar precis som i vanliga programmeringsspråk. Man kan undertrycka utskriften från en sats genom att avsluta den med semikolon, (;). Kom ihåg att till exempel xy inte är samma sak som x*y. I det första fallet är det en variabel i andra fallet produkten av variablerna x och y. Man tilldelar en variabel ett värde genom =. x=1; y=5; x+y Håkan Strömberg 10 KTH STH
x*y 6 5 Med hjälp av funktionen Solve kan man lösa ekvationer. För att lösa andragradsekvationen x 2 2x 8 = 0 skriver vi Solve[x^2-2x-8==0] {{x -> -2}, {x -> 4}} Mathematica svarar med de två rötterna x 1 = 4 och x 2 = 2. Löser vi istället ekvationen skriver vi Solve[x^2-5x+3==0,x] och får de exakta rötterna x 2 5x+3 = 0 x 1 = 5 2 + 13 2 x 1 = 5 2 13 2 Funktionen Simplify används för att förenkla algebraiska uttryck som till exempel Om vi exekverar uttrycket a 2 b 2 a+b + c a c 2 a 2 + b2 c 2 b c 1 c+a Simplify[(a^2-b^2)/(a+b)+(c-a)/(c^2-a^2)+(b^2-c^2)/(b-c)-1/(c+a)] a+c förstår vi att det kan förenklas till a + c. Lyckas man hålla reda på parenteserna är det mycket tidsbesparande att använda ett program som Mathematica! Med hjälp av Expand kan vi utveckla parenteser som till exempel Vi skriver (x+1)(x 2)(x+3)(x 4) Expand[(x+1)(x-2)(x+3)(x-4)] och får utan väntetid x 4 2x 3 13x 2 +14x+24 Man plottar en funktion genom kommandot Plot. Håkan Strömberg 11 KTH STH
1.1. TALTEORI 0,8 0,6 0,4 0,2 K6 K4 K2 0 2 4 6 x K0,2 K0,4 K0,6 K0,8 Figur 1.2: Plot[Sin[x]Cos[x/3],{x,-2Pi,2Pi}] och får kurvan i figur 1.2 Detta är den enklaste användningen av Plot. En mängd anpassningar återges i hjälpen. Mathematicas Help är mycket omfattande och kanske lite svår att hitta i. Ägna därför lite tid till att studera vad som står att läsa om till exempel Plot. Så till sist några funktioner vi refererat till i texten här ovan. Funktionen FactorInteger primfaktoruppdelar ett heltal FactorInteger[123456789] Talet 123456789 = 3 2 3803 3607, där 3, 3803 och 3607 alla är primtal. Om kommandot PrimeQ[n] returnerar True är det mycket troligt att n verkligen är ett primtal. Med kommandot PrimePi[n] får vi reda på hur många primtal det finns som är n. PrimePi[30000] 3245 Det finns alltså 3245 primtal < 30000 Kommandot Prime[n] ger oss det n:te primtalet i ordningen. Kommandot IntegerLength[n] kan användas för att ta reda på hur många siffror ett tal n innehåller. Håkan Strömberg 12 KTH STH
Teoriuppgifter Problem 1 Faktoruppdela talen 72 och 63 utan elektroniska hjälpmedel Problem 2 Bestäm q och r då 32 divideras med 7 Problem 3 Skjortförsäljning. Adam började sälja skjortor, för 200 kr/styck. Försäljningen gick dock inget vidare, förrän han sänkte priset med några kronor. På tre dagar hade han sålt för totalt 60377 kr. Hur många skjortor hade han sålt och till vilket pris? Problem 4 Försäljning av radioapparater. Under säsongen har företaget sålt ett parti radioapparater. Totalt gav försäljningen i norra distriktet 389393 kr och i södra 831119 kr. Vilket pris hade radioapparaten och hur många hade sålts i de båda landsändarna? Problem 5 Hur många faktorer innehåller talet 4096 = 2 12? Problem 6 Finn tre positiva heltal a,b och c, sådana att 31 (5a+7b+11c) Problem 7 Tre distrikt Tre distrikt har under julhandeln sålt jultomtemasker, alla till samma pris. Nedan ser vi den totala omsättningen i kronor Distrikt Distrikt I Distrikt II Distrikt III Omsättning 5083 kr 5423 kr 5117 kr Hur mycket kostade en jultomtemask, ett helt, > 1, antal kronor? Problem 8 Stigande försäljning Försäljningen av kökspallen Palle har stigit under de senaste tre åren, trots att priset under perioden varit detsamma (ett heltal kr). Här är omsättningssiffror- Håkan Strömberg 13 KTH STH
1.1. TALTEORI na: Hur mycket kostar pallen Palle? År Omsättning (kr) 2001 85963 2002 106361 2003 202429 Problem 9 Sedan texten om det största kända primtalet skrevs, har rekordet slagits och det just nu största kända primtalet är 2 43112609 1 Hur många siffror har detta tal? Problem 10 Skriv ett C-program som tar emot ett heltal och som avgör om det är delbart med 7. Viktigt Programmet ska använda den metod som beskrivs under rubriken Delbarhetskriterier. Problem 11 Från Adam hör vi följande: Välj ut 5 heltal och jag lovar att jag kommer att kunna plocka ut tre av dessa, så att dess summa är delbar med 3. Ska vi slå vad att jag kan?. Kommer han att vinna vadet? Problem 12 Följande funktion är en naiv test av om ett tal n är primtal eller inte. Då så är fallet returneras 1 annars 0. a) Varför räcker det att testa upp till n? b) För vart annat varv i loopen är i jämnt. Hur kan man med små förändringar göra funktionen mer effektiv? 1 int prime(int n){ 2 int i; 3 for(i=2;i<=sqrt(n);i++) 4 if(n%i==0) 5 return 0; 6 return 1; 7 } Problem 13 Hur många av talen 2 n 1, n < 50 är primtal? Vad kan man gissa ska gälla för n, för att 2 n 1 ska vara ett primtal? Använd funktionen PrimeQ i Mathematica Problem 14 Vilket är det största primtal man kan lagra i en dator med 32-bitars heltal? Håkan Strömberg 14 KTH STH
Problemlösning Här kommer de första problemen. Vilken poäng en korrekt lösning är värd anges inom parentes i rubriken. Totalt ska du under kursen samla ihop 50 poäng för att få godkänt på denna del. Problemlösning 1. Dela bröd och pengar (1) Två luffare, A med 3 bröd och B med 5 bröd, hade just satt sig vid vägkanten för att äta, då en tredje luffare, C, kom förbi. C hade ingen egen mat, utan betalade sin andel med 8 kr. Hur skulle detta belopp fördelas rättvist mellan A och B, om maten delats lika mellan de tre luffarna? Problemlösning 2. De fyra korten (1) Det ligger fyra kort, med baksidan upp, i en rad på bordet, spaderkung, spaderdam, hjärterkung och hjärterdam. I vilken ordning ligger korten om vi vet att: det ligger en kung direkt till höger om en dam det ligger en dam direkt till höger om en kung det ligger en kung direkt till höger om en kung det ligger en spader direkt till höger om en spader det ligger en spader direkt till höger om en hjärter Problemlösning 3. Finn skeppen (1) I figur 1.3 ser vi ett hav bestående av 10 10 rutor. I havet finns ett antal fyrar markerade 4 2 4 0 3 1 3 4 2 Figur 1.3: med cirklar. Inuti cirklarna finns ett tal, som berättar hur många skepp man kan se från fyren. Alla dessa skepp finns i samma rad eller kolumn som fyren. De åtta rutor som omger ett skepp kan aldrig innehålla vare sig ett skepp eller en fyr. Alla skepp syns från åtminstone en fyr. Var finns skeppen? Håkan Strömberg 15 KTH STH
1.1. TALTEORI Problemlösning 4. Finn skeppen igen (1) Samma regler som i problemet ovan för figur 1.4. 6 1 4 2 3 3 1 1 2 3 Figur 1.4: Problemlösning 5. Talet 15873 (1) Starta med talet 15873. Multiplicera med ett tal från mängden {1...9}. Multiplicera sedan med 7. Betrakta resultatet. Kan du förklara fenomenet? Problemlösning 6. De falska mynten (2) Framför dig på bordet ligger 13 påsar med mynt. Alla med minst 100 mynt. Mynten väger normalt exakt 8.0 gram, utom i en påse där det finns enbart falska mynt, som alla väger 9.0 gram. Hur kan man finna den påse som innehåller de falska mynten genom en enda vägning på en vanlig våg? Problemlösning 7. De fyra konstnärerna (2) Adamsson, Bertilsson, Curtsson och Davidsson är fyra begåvade konstnärer. En är dansare, en målare, sångare och en är författare. Adamsson och Curtsson satt i publiken då sångaren uppträdde Både Bertilsson och författaren satt en gång modell för målaren Författaren, vars biografi om Davidsson blev en storsäljare, har just påbörjat en biografi om Adamsson Adamsson har aldrig hört talas om Curtsson Kan du reda ut vilka yrken de fyra herrarna har? Problemlösning 8. Dela äpplen (2) Adam, Bertil och Curt hade fått lov att dela på en hög äpplen. Adam kom först och tog en 1/3 av högen. När Bertil kom lite senare trodde han att han var först på plats, så därför tog även han 1/3 av högen. Curt kom sist, men trodde han var först. Han tog en 1/3 av högen och lämnade 8 äpplen, som låg kvar och ruttnade. Hur många äpplen fanns det från början i högen? Hur många olika äpplen fick var och en? Håkan Strömberg 16 KTH STH
Problemlösning 9. Den betande geten (2) Vid en knut av ett 5 meter långt och 4 meter brett hus, står en get tjudrad i ett 6 meter Figur 1.5: långt rep. På tomten kring huset växer saftigt gräs. Hur stor area av gräsmattan har geten tillgång till? Problemlösning 10. Den blommande trädgården (2) a) I dag blommar all tre sorterna, utbrister den förvånade trädgårdsmästaren. Den här sällsynta sorten från Sydamerika, blommar var 11:e dag Den här rosen från Asien blommar var 13:e dag Och den här liljan från Australien var 15:e dag Hur lång tid dröjer det, innan de tre blommorna åter blommar samma dag? b) Samma uppgift som ovan, men nu blommar de tre blommorna var 11:e, 22:a och 15:e dag c) Samma uppgift som ovan, men nu blommar de tre blommorna var 72:a, 48:e och 144:e dag Problemlösning 11. KTH-basket (3) I basket får man 1 poäng för lyckade straffkast, 2 poäng för lyckade skott inom korgområdet och 3 poäng för lyckade distansskott. I KTH-basket däremot får man a poäng för lyckade straffar och b poäng för andra lyckade skott, alltså ingen extra bonus för distansskott som går i korgen. Poängen är så satta att det finns 35 olika slutpoäng, som är omöjliga att uppnå, en av dem är 58. Naturligtvis får man färre poäng för ett lyckat straffkast än för ett målkast utifrån planen. Hur många poäng får man för de två olika poänggivande skotten? Håkan Strömberg 17 KTH STH
1.1. TALTEORI Problemlösning 12. Inhägnaderna (3) Figur 1.6: Flygbild över hagarna En bonde hägnade in en rektangulär bit av sin åker med 139 meter stängsel. Förutom själva omkretsen dessutom en diagonal, där alla sidor och diagonalen hade ett mått i hela meter. Till sin fasa såg han att grannen lyckas skapa en liknade hage med mindre stängsel och större area! Även hos grannen var alla mått i hela meter och med ett stängsel utefter en diagonal. Bestäm måtten hos de två hagarna. Problemlösning 13. Mysteriet med kokosnötterna (3) Fyra män hade lidit skeppsbrott på en öde ö, där det inte finns något annat ätbart än kokosnötter. De märkte snart att öns apor satte i sig väldiga mängder, och för att undvika att själva råka ut för kokosnötsbrist, samlade de ihop alla kokosnötter de kunde finna i en enda stor hög. Sedan de gått och lagt sig den kvällen vaknade emellertid en av de fyra snart igen och muttrade bistert för sig själv: Jag känner ju inte alls de här tre andra, och har ingen aning om huruvida de är ärliga eller inte. Så det är nog säkrast att jag tar min andel av kokosnötterna genast. Han gick ut och delade upp kokosnötterna i fyra lika stora högar, upptäckte att det blev tre över, som han kastade åt aporna, gömde sin fjärdedel och samlade ihop de återstående tre fjärdedelarna i en hög, varefter han kröp till kojs igen. Strax efteråt vaknade en annan av männen, funderade sig fram till samma slutledning som den förste och delade upp de återstående kokosnötterna i fyra lika stora högar, upptäckte att det blev tre över, som han kastade åt aporna, gömde sin fjärdedel och samlade ihop de återstående tre fjärdedelarna i en hög igen, och kröp sedan till kojs på nytt. De båda återstående männen upprepade i tur och ordning samma förfarande. Nästa morgon var högen synbart mindre än den hade varit kvällen innan, men eftersom de alla fyra led av en viss skamkänsla, var det ingen som sade någonting, utan alla gick villigt med på det förslag som väcktes, om att var och en skulle ta sin del och använda den efter eget gottfinnande. Alltså delade de upp de återstående kokosnötterna i fyra lika stora delar och tog hand om var sin fjärdedel av dem. Den här gången blev det inte en enda kokosnöt över åt aporna. Vilket är det minsta antal kokosnötter högen ursprungligen kan ha innehållit? Håkan Strömberg 18 KTH STH
Problemlösning 14. Mobilen (3) Figur 1.7 visar en mobil med 7 vågskålar. I dessa ska placeras 40 lika tunga kulor, så att Figur 1.7: mobilen väger jämnt, som i figuren. Problemlösning 15. Förvirrad professor (4) Min bil är stulen, skriker professorn i samma stund som han stormar in på polisstationen. Vilket registreringsnummer?, undrar polismannen. Jag minns inte en enda siffra. Men det består av fyra siffror, det kommer jag ihåg Fyra siffror, eh.... Det räcker nog inte. Vänta ett tag, säger professorn, med glansiga ögon, jag börjar minnas en del angående mitt bilnummer. Jag diskuterade härom dagen faktorer med min dotterdotter. Faktorer, eh? Ja, mitt registreringsnummer har ganska många faktorer. Jag visade henne att tre av dessa faktorer kunde väljas, på flera sätt, så att deras summa blev 100. Anta att mitt nummer är n. Va, n!, sa den oförstående polismannen. Anta att mitt nummer är n. Om ax,by och cz alla är lika med n, så kan a,b och c väljas på ett sätt, sådant att a+b+c = 100. Även dessa val kan göras på fler än ett sätt. Av dessa valde vi ut det fall, då x+y+z är så litet som möjligt. Vi upptäckte då, min dotterdotter och jag, att x+y+z är en produkt av fyra primtal. Summan av dessa fyra primtal är, ganska intressant, 1 större än a och 1 mindre än b. Vad sa ni...? Att med hjälp av dessa ledtrådar kan ni bestämma mitt registeringsnummer, eller hur??" Hjälp den stackars polisen att lista ut professorns registeringsnummer Håkan Strömberg 19 KTH STH
1.1. TALTEORI Lösningar Teoriuppgifter Lösning Teoriuppgift 1 Först inser man kanske att 9 8 = 72 som i sin tur leder till 72 = 3 3 2 2 2 2. På samma sätt får vi från multiplikationstabellen att 9 7 = 63. I nästa steg kan vi skriva 63 = 3 3 7 Lösning Teoriuppgift 2 32 = 4 7+4. Alltså är q = r = 4 Lösning Teoriuppgift 3 Till att börja med kan man tycka att det saknas uppgifter, men med tanke på vad vi just nu sysslar med, kan det ligga nära till hands att i Mathematica skriva: FactorInteger[60377] {{173, 1}, {349, 1}} Tydligen är detta ett väl tillrättalagt problem. Beloppet kan skrivas 60377 = 173 349. Eftersom vi vet att priset var under 200 kr, vet vi nu att Adam sålde 349 skjortor till priset 173 kr. med penna och papper fortfarande slitsamt, med räknedosa möjligt. Att försöka finna dessa faktorer med huvudräkning omöjligt? Lösning Teoriuppgift 4 Av sammanhanget att döma kan det inte vara fel att i Mathematica skriva: FactorInteger[389393] {{439,1},{887,1}} FactorInteger[831119] {{887,1},{937,1}} Faktorn 887 är gemensam för de två beloppen och måste alltså utgöra priset. I norra delen sålde man 439 apparater och i södra 937 Lösning Teoriuppgift 5 Det blir förstås 12 faktorer. 2 12 = 2 2 2 2 2 2 2 2 2 2 2 2 Lösning Teoriuppgift 6 En direkt lösning är a = b = c = 31. Med ett enkelt C-program får vi flera lösningar: Håkan Strömberg 20 KTH STH
1 #include <stdio.h> 2 int main(void){ 3 int a,b,c; 4 for(a=1;a<10;a++) 5 for(b=1;b<10;b++) 6 for(c=1;c<10;c++) 7 if ((5 a+7 b+11 c)%31==0) 8 printf("%d %d %d\n",a,b,c); 9 } Där a = 1, b = 5 och c = 2 är en av många lösningar. Lösning Teoriuppgift 7 Tre distrikt Med hjälp av Mathematica och FactorInteger får vi 5083 = 13 17 23 5423 = 11 17 29 5117 = 7 17 43 Ur detta kan vi sluta oss att en tomtemask kostar 17 kr Lösning Teoriuppgift 8 Stigande försäljning Palle kostar 47 kr 85963 = 31 47 59 106361 = 31 47 73 202429 = 47 59 73 Lösning Teoriuppgift 9 IntegerLength[2^43112609-1] 12978189 ger oss svaret Håkan Strömberg 21 KTH STH
1.1. TALTEORI Lösning Teoriuppgift 10 1 #include <stdio.h> 2 int main(void){ 3 int talet,sista; 4 printf("talet? "); 5 scanf("%d",&talet); 6 while(talet>18){ 7 sista=talet%10; 8 talet=talet/10; 9 talet=talet 2 sista; 10 } 11 if(talet%7==0) 12 printf("ja"); 13 else 14 printf("nej"); 15 } Lösning Teoriuppgift 11 När man dividerar ett tal n med 3 får man någon av resterna 0,1 eller 2. Om tre av de givna talen har samma rest, så är summan av dessa tre tal delbar med 3. Om det inte finns tre tal med samma rest, måste det finnas minst ett med resten 0,1 respektive 2. Summerar vi dessa tre tal så kommer summan att bli delbar med 3. Lösning Teoriuppgift 12 Om talet n inte är ett primtal, måste det ha åtminstone två faktorer a 1 och a 2. Båda dessa faktorer kan inte vara större än n eftersom det skulle betyda att a 1 a 2 > n. Lösning Teoriuppgift 13 För n = 2,3,5,7,13,17,19,31 är 2 n 1 ett primtal. Man kan bevisa att n i sig måste vara ett primtal för att 2 n 1 ska vara det. Om det är ett nödvändigt villkor, så är det inte tillräckligt. Till exempel är 2 1 1 1 = 2047 = 23 89. Lösning Teoriuppgift 14 Det största talet som kan skrivas med 32 binära siffror är 2 32 1 = 4294967295. Genom att skriva Prime[PrimePi[2^32-1]] får vi svaret 4294967291. Om man testar ett tal i taget med hjälp av Prime[] och börjar bakifrån. Första kandidaten att testa blir då 4294967293, eftersom vi snabbt kan avfärda de två största talen. Detta tal är dock inget primtal, men nästa kandidat är det. Visst är det lite tur att svaret låg så nära det största möjliga! Håkan Strömberg 22 KTH STH
Laboration I den första laborationen där du ska bekanta dig med Mathematica, ska du lösa följande, matematiskt ganska enkla, uppgifter. Poängen för korrekt lösning anges inom parentes i rubriken. Totalt ska du under kursen samla ihop 50 poäng för att bli godkänd på denna del. Laborationsuppgift 1. Fisken (förstagradsekvation) (1) En fisk består av ett huvud, en kropp och en stjärt. Stjärten är dubbelt så lång som huvudet, plus 5 cm. Kroppen är dubbelt så lång som som huvudet och stjärten tillsammans. Fisken är total 105 cm lång. Hur långa är de olika delarna var för sig? Gör ett antagande. Skriv ned ekvationen, eventuellt på papper. Ta sedan, i sista steget till Mathematica, för att lösa ekvationen och få svaret. Tips: Använd funktionen Solve. Om man till exempel vill lösa följande ekvation skriver man så här Solve[4x^2-8x-60==0] {{x -> -3}, {x -> 5}} 4x 2 8x 60 = 0 Andragradsekvationen har rötterna x 1 = 3 och x 2 = 5. Sensmoral: Inget känt datorprogram kan ta emot problemtexten ovan, tolka den, ställa upp och lösa tillhörande ekvation. Däremot saknar de flesta människor förmågan, att i snabbhet tävla med Mathematica att lösa en redan uppställd ekvation. Laborationsuppgift 2. Ett litet ekvationssystem (1) Jag tänker på två tal. Om jag summerar dem får jag summan 394. Om jag bestämmer skillnaden mellan dem, får jag 118. Vilka tal tänker jag på? Tips: När man har två ekvationer, som ska lösas i ett system { 3x+4y = 10 5x 3y = 7 skriver man dem i en lista så här: Solve[{3x+4y==10,5x-3y==7}] {{x->2, y->1}} Håkan Strömberg 23 KTH STH
1.1. TALTEORI Laborationsuppgift 3. Skärningspunkter mellan kurvor (1) I den här uppgiften ska du plotta funktionerna: och f 1 (x) = x 2 3x+4 f 2 (x) = x 2 +5x+5 och därefter bestämma i vilka punkter de skär varandra Tips: En funktion plottas med Plot. Ta reda på mer om parametrarna till Plot genom hjälpen. När du lyckats få upp grafen kan du läsa av ungefärliga värden med ögat. Ta nu reda på skärningspunkterna genom att använda Solve. Skärningspunkterna ges exakt. Ta reda på vad som händer om man tillfogar N[Solve[...]]. Laborationsuppgift 4. Jobbig ekvation (1) En ekvation liknande denna kunde man få i läxa när man på 1950-talet gick i realskolan, den skolform, som ligger närmast dagens högstadium. Lös den med hjälp av Mathematica 1 1 1.5+x + 1 1.5 x + 2x2 3 = 1.5 x 1 1 1.5 x + 1 1.5+x Laborationsuppgift 5. Förenkling (1) Med hjälp av funktionen Simplify kan man få Mathematica att förenkla, bland annat, algebraiska uttryck. 1 a b 1 b a + 1 2b a a 2 +4b 2 ab Förenkla detta uttryck med hjälp av Mathematica Tips: När man vill förenkla ett uttryck som skriver man + 2 a b ( (x y) 2 (x y) x 2 y 2 x ) x y Simplify[(x - y)*((x + y)^2/(x^2 - y^2) - x/(x - y))] y och får svaret y Håkan Strömberg 24 KTH STH
Laborationsuppgift 6. Utveckling (1) Uttrycket (x + y) 2 får man expanderat i Mathematica med hjälp av funktionen Expand. Man skriver helt enkelt Expand[(x+y)^2] x^2+2xy+y^2 En bekant företeelse i matematiken är Pascals triangel, vars topp ser ut som följer: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 Expandera (x+y) n för n = 1...7 och jämför koefficienterna i de uttryck du får med talen i Pascals triangel. Försök sedan ange utvecklingen av (x+y) 8 utan att använda Mathematica. För att klara det måste du komma på hur man bildar en ny rad i Pascals triangel, i det här fallet den 9:e. Håkan Strömberg 25 KTH STH
2.2. TALTEORI Dagens Teori 2.2 Talteori 2.2.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 26 KTH STH
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.2.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 8 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 9 gcd(67320, 7344) = 1224 67320 = 9 7344+1224 7344 = 6 1224+0 Håkan Strömberg 27 KTH STH
2.2. TALTEORI 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 10 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 28 KTH STH
Exempel 10 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 5 för godtyckliga a,b Z lcm(34,51) = 2 3 17 = 102 a b = gcd(a,b) lcm(a,b) Exempel 11 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.2.2 Kongruenser Exempel 12 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 11 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 m (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 13 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 29 KTH STH
2.2. TALTEORI Exempel 14 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 6 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 15 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 16 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 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 30 KTH STH
Minsta icke negativa resten av a modulo m Definition 12 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 17 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 18 Ä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 19 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 31 KTH STH
2.2. TALTEORI Exempel 20 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.2.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 32 KTH STH
Exempel 21 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.2.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 22 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 33 KTH STH
2.2. TALTEORI Exempel 23 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.2.4 Diofantiska ekvationer Exempel 24 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 styckepris 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.8: 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 34 KTH STH
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.2.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 35 KTH STH
2.2. TALTEORI 2.2.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.2.7 Lösningsmetod Exempel 25 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 7 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 36 KTH STH
Sats 8 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 37 KTH STH
2.2. TALTEORI 20 15 10 5 2 3 4 5 6 7 Figur 2.9: 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 38 KTH STH
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 39 KTH STH
2.2. TALTEORI 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 (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] Håkan Strömberg 40 KTH STH
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 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. Håkan Strömberg 41 KTH STH
2.2. TALTEORI 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 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}] Håkan Strömberg 42 KTH STH
{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) 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 43 KTH STH
2.2. TALTEORI Teoriuppgifter Problem 15 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 16 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 17 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 18 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 19 Beräkna för hand med hjälp av Euklides algoritm gcd(53,77) Problem 20 Beräkna för hand med hjälp av Euklides algoritm gcd(858,630) Problem 21 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 44 KTH STH
genom att direkt skriva ned ett uttryck som du dock inte behöver beräkna Problem 22 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 23 Bestäm bara genom att titta på talen gcd(10, 25, 35, 245) Problem 24 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 25 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 26 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 27 Översätt talet 123 10 till binär form Håkan Strömberg 45 KTH STH
2.2. TALTEORI Problem 28 Vad kan man säga om skrivet på binär form? 2 n 1 Problem 29 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 30 Sätt in gränser uttryckta i a och b, där a b i uttrycket lcm(a,b) Problem 31 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 32 Bestäm med huvudräkning resten då 7 220 divideras med 8 Problem 33 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 34 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. Håkan Strömberg 46 KTH STH
Lösningar Teoriuppgifter Lösning Teoriuppgift 15 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 16 a) gcd(a,b) = 1, b) gcd(a,b) > 1 c) gcd(a,b) = a Lösning Teoriuppgift 17 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 18 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 19 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 20 gcd(858,630) = 6 Lösning Teoriuppgift 21 2 4 3 3 5 2 7 2 11 2 = 64033200 Håkan Strömberg 47 KTH STH
2.2. TALTEORI Lösning Teoriuppgift 22 2 7 3 5 5 4 7 2 11 3 13 3 17 3 = 13685076111666960000 Lösning Teoriuppgift 23 gcd(10,25,35,245) = 5 Lösning Teoriuppgift 24 lcm(a 1,a 2...a n ) = a 1 a 2... a n Lösning Teoriuppgift 25 Det finns två lösningar: 1) 1 glasstrut och 14 klubbor 2) 8 glasstrutar och 2 klubbor Lösning Teoriuppgift 26 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 27 1111011 2 Lösning Teoriuppgift 28 Att talet består av n stycken 1:or Lösning Teoriuppgift 29 r a Håkan Strömberg 48 KTH STH
Lösning Teoriuppgift 30 b lcm bc Lösning Teoriuppgift 31 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 32 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 33 gcd(a,m) = gcd(b,m) Lösning Teoriuppgift 34 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. Håkan Strömberg 49 KTH STH
2.2. TALTEORI Laboration Laborationsuppgift 7. 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 8. 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 9. 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 10. 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 11. 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 50 KTH STH
Laborationsuppgift 12. 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 13. 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 14. 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 15. 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 51 KTH STH
3.3. MÄNGDER Dagens Teori 3.3 Mängder Många matematiska tankar kan formuleras med hjälp mängdlärans språk. Mängdläran uppfanns av den tyska matematikern GEORG CANTOR (1845 1918) En stor satsning på mängdläran gjordes i svensk undervisning på 1960-talet, då man trodde att den skulle lösa alla didaktiska problem. Man nyktrade dock snart till och ordningen återställdes. En mängd är en samling objekt, alla olika, som vi kallar element. Definition 13 Att x är ett element i mängden A uttrycker vi eller om elementet inte tillhör mängden x A x A Definition 14 Två mängder A och B är lika, A = B, om de har precis samma element: x A x B Då mängden har ett ändligt antal element kan de räknas upp och vi skriver den till exempel A = {2,3,5,7,11,13,17,19} Mängden A innehåller alla primtal < 20 som och också kan skrivas A = {x x är primtal < 20} A är mängden av x, sådana att x är ett primtal < 20. Följande mängder är speciellt vanliga och dess namn har därför standardiserats: N = {0,1,2,3...} De naturliga talen Z = {... 2, 1,0,1,2...} De hela talen Q = {p/q p,q Z,q 0} De rationella talen R Mängden av alla reella tal C = {a+ib a,b R} De komplexa talen Håkan Strömberg 52 KTH STH
Definition 15 Om varje element i mängden A också tillhör mängden B, så säger vi att A är en delmängd av B och skriver A B. Om A B men A B, så säger vi att A är en äkta delmängd av B, som vi skriver A B. x A x B Om x tillhör A, så medför det att x tillhör B. Om A B och B A, så medför det att A = B. Vi kan till exempel skriva Vi kan skriva N Z Q R C Vi använder { } för att beteckna mängder, alltså är det skillnad mellan skrivsätten {15} och 15. {15} är en mängd med det enda elementet 15. Vi skriver därför 15 Z men {15} Z. 15 tillhör mängden av hela tal respektive {15} är en delmängd av mängden av hela tal. Den tomma mängden skrivs och är en mängd helt utan element. Den tomma mängden är en delmängd till varje mängd A. A Observera att {7,8,9} Z. Z är en mängd, mängden av hela tal, och innehåller inte mängden {7, 8, 9}. Däremot kan man skriva {7, 8, 9} Z. Normalt finns en grundmängd U, även kallad universum, en mängd som innehåller alla element som över huvud taget kan komma ifråga, i sammanhanget. För ett givet U och en given mängd A menar vi med A de element x som finns i U men där x A. 3.3.1 Mängdoperationer A och B är mängder då Unionen A B = {x x A eller x B} Snittet A B = {x x A och x B} Differensen A B = {x x A men x B} Komplementet A = {x x U men x A} Symmetriska diffrensen A B = {x x A eller x B men inte båda } Med tidigare antagna beteckningar kan vi också skriva A som U A. För att åskådliggöra mängder kan man, så länge antalet mängder är litet, använda sig av Venndiagram: Figur 3.10: Från vänster i figur 3.10 visas Venndiagram för A B,A B,A B och A B. Exempel 26 Om U är mängden av alla människor på vår jord och R är mängden av alla rödhåriga, så är U R = R är mängden av alla icke rödhåriga. Håkan Strömberg 53 KTH STH
3.3. MÄNGDER Om två mängder saknar gemensamma element sägs de vara disjunkta. När antalet mängder är > 3 är det svårt att rita tydliga Venndiagram. Här dock ett försök då antalet mängder är fyra. Antalet element i mängden A uttrycks genom beteckningen A. Figur 3.11: Tre viktiga identiteter Distributiva lagen I A (B C) = (A B) (A C) Distributiva lagen II A (B C) = (A B) (A C) DeMorgan s lag I (A B) = A B DeMorgan s lag II (A B) = A B Exempel 27 Vi kan bevisa till exempel DeMorgan s lag II genom en så kallad medlemskapstabell. A B A B (A B) A B A B 1 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 Då den fjärde och den sjunde kolumnen är identiska är DeMorgan s lag II bevisad. Antalet element i en mängd Antalet element i en mängd kallas mängdens kardinaltal. Så länge vi enbart behandlar ändliga mängder är detta tal enkelt att greppa. Antalet element hos mängden A betecknas med A. Mängden av alla delmängder Om A = {a,b,c}, så är P(A) = {,{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}}. P(A) är alltså mängden av delmängder man kan bilda utifrån mängden A. P(A) = 8. Om en mängd B innehåller två element är P(B = 4. Vilket värde har P(C) då C = n? Håkan Strömberg 54 KTH STH
När vi bildar alla delmängder har vi att avgöra om ett element ska ingå eller inte ska ingå. Det finns två möjligheter för varje element och vi får P(C) = 2 n då C = n. 3.3.2 Cartesisk produkt n {}}{ 2 2 2... = 2 n Vi definierar Cartesisk produkt eller produktmängd med hjälp av följande två exempel. Vi tänker oss att mängden B av bilmärken är och att mängden F av färger är B = {Volvo, SAAB, Fiat} F = {Svart, Blå, Röd} Vi kan nu bilda den cartesiska produkten av olika bilar och får en mängd av ordnade par: F B = {(Svart, Volvo),(Svart, SAAB),(Svart, Fiat), (Blå, Volvo),(Blå, SAAB),(Blå, Fiat), (Röd, Volvo),(Röd, SAAB),(Röd, Fiat)} Resultatet är alltså en mängd F B där varje element är ett ordnat par. Det är lätt att beräkna antalet sådana par i F B till F B = F B. Med ordnat par betyder att det är skillnad på paret (Röd, SAAB) och (SAAB, Röd). Det senare paret ingår inte i vår cartesiska produkt därför att det inte finns någon bil av märket Röd med färgen SAAB. Antalet ingående mängder kan utökas så långt vi vill. Här ett nytt exempel. Vi har tre mängder med tillhörande element, A = {a 1,a 2,a 3 }, B = {b 1,b 2 }, C = {c 1,c 2,c 3,c 4 } då skrivs den cartesiska produkten till dessa tre mängder som: A B C = {(a 1,b 1,c 1 ),(a 1,b 1,c 2 ),(a 1,b 1,c 3 ),(a 1,b 1,c 4 ), (a 1,b 2,c 1 ),(a 1,b 2,c 2 ),(a 1,b 2,c 3 ),(a 1,b 2,c 4 ), (a 2,b 1,c 1 ),(a 2,b 1,c 2 ),(a 2,b 1,c 3 ),(a 2,b 1,c 4 ), (a 2,b 2,c 1 ),(a 2,b 2,c 2 ),(a 2,b 2,c 3 ),(a 2,b 2,c 4 ), (a 3,b 1,c 1 ),(a 3,b 1,c 2 ),(a 3,b 1,c 3 ),(a 3,b 1,c 4 ), (a 3,b 2,c 1 ),(a 3,b 2,c 2 ),(a 3,b 2,c 3 ),(a 3,b 2,c 4 )} Håkan Strömberg 55 KTH STH
3.3. MÄNGDER Mathematica Att slå ihop två listor Målet är här att slå samman de två listorna m7 och m8 till en, som vi kallar m10. Vi använder då funktionen Join på följande sätt: m7={1,2,3}; m8={4,5,6,7}; m10=join[m7,m8] {1,2,3,4,5,6,7} En listas längd Använder vi funktionen Length på en lista, svarar Mathematica med antalet element som ingår i listan. Length[m7]; 3 Head, Tail och Prepend Tre små funktioner som alla opererar på en lista First Första elementet i den aktuella listan Rest En lista, vars enda element är en lista, där första elementet har avlägsnats från den aktuella listan Prepend Att lägga till ett element först i aktuell lista Här följer de tre funktionerna a={3,5,7,9}; First[a] 3 Rest[a] {5,7,9} Prepend[a,1] {1,3,5,7,9} Ta bort och lägga till element i och ur en lista Tre funktioner a={1,2,3,4}; Append[a,5] {1,2,3,4,5} Take[{8, 9, 10, 11}, {3, 4}] Håkan Strömberg 56 KTH STH
{10,11} Insert[a,111,3] {1,2,111,3,4} Drop[a,{2,3}] {1,4} Förklarar de sig själva? Var finns elementet? Med hjälp av funktionen Position kan man ta reda på de platser där ett visst element finns i listan slump a={2,6,5,9,7,3,2,1}; Position[a,2] {{1},{7}} Count[a,2] 2 Position returnerar en lista med index för de platser där talet 2 finns. Kommandot Count räknar antalet förekomster av talet 2 i listan a. f[m_,t_]:=count[m,t]>0 f[a,2] True; Detta är en funktion som returnera True om talet t finns i listan m. Mängder En lista är en följd av objekt, till exempel heltal. Det är fullt möjligt att samma tal (eller objekt) kan finnas mer än en gång i en lista. Dessutom är ordningen av elementen i listan av vikt. En mängd är en samling element, som saknar dubbletter och där ordningen är oviktig. {}. l1={1,2,3}; l2={2,3,1,1}; m1=union[l1]; m2=union[l2]: l1==l2 False m1==m2 True Genom att använda Union på en lista, sorteras och avlägsnas alla dubbletter i listan. Listan har blivit till en mängd. Håkan Strömberg 57 KTH STH
3.3. MÄNGDER De tre mängdoperatorerna vi lärt oss tidigare skrivs Så här använder man dem: a={1,2,3,4,5}; b={2,4,6}; Intersection[a,b] {2,4} Union[a,b]; {1,2,3,4,5,6} Complement[Range[10],a] {6,7,8,9,10} Mathematica Namn Operator Union Union Intersection Snitt Complement Differens Range[n] skapar en lista av heltal från 1 till n Procedur g[n_]:=block[{sum=2,k}, For[k = 1,k<= n,k++, sum = sum + k; ]; sum ] g[n] är ett exempel på en procedure i Mathematica. Vi anropar den med hjälp av till exempel g[100] 5050 och får reda på summan av 1+2+...+99+100 = 5050. En procedur inleds med ett namn följt av en parameterlista, som kan vara tom. Parametrarna avslutas med underscore _. Om funktionen innehåller flera rader innesluts den i ett Block[]. Den inledande listan innehåller lokala variabler. Raderna i en funktion avslutas med semikolon, ;. Funktionen ovan innehåller en For[]-sats uppbyggd ungefär som i programspråket C, utom att man använder komma, istället för semikolon, ;. Det är resultatet av sista satsen som returneras. Håkan Strömberg 58 KTH STH
For-satsen Här följer några exempel For[i=1,i<=10,i++, Print[i] ] 1 2 3 4 5 6 7 8 9 10 For[i=1,i<=11,i=i+2, Print[i] ] 1 3 5 7 9 11 While-satsen While-loopen kan skrivas så här If-satsen m=1; While[m<123456789, m=2*m ] m Detta exempel på if-sats säger allt a=8; If[Mod[a,3]==0, q=1, If[Mod[a,3]==1, q=2, q=3 ] ] Logiska operatorer är and, or, not skrivs som i C, &&,,!, Dessutom finns operatorerna samt xor och implies som vi återkommer till. 5>2 True f[x_,l_,u_]:=x>=l && x<=u f[7, 6, 10] True Håkan Strömberg 59 KTH STH
3.3. MÄNGDER Full evaluering Man måste inse att det är så här Mathematica fungerar c:=b; b:=a; a:=10; c 10 Det vill säga att när man tilldelar a värdet 10 så kommer först b och sedan c att få värdet 10. Inte precis vad man är van vid. Men Clear[" *"] c=b b=a a=10 b a 10 När Clear ges denna parameter, glöms alla tidigare tilldelningar och definitioner. Ett alternativ är att klicka sig fram i menyn till Evaluation->Quit Kernel->Local. Lista med primtal primtal[n_] := Block[{k, lista}, lista = {}; For[k = 2, k <= n, k++, If[PrimeQ[k], AppendTo[lista, k] ] ]; lista ] primtal[30] {2,3,5,7,11,13,17,19,23,29} Ovan har vi en funktion, primtal(n), som returnerar en lista med samtliga primtal < n. Vi deklarerar och initierar lista. Med hjälp av den inbyggda funktionen PrimeQ avgör vi om k är ett primtal. Om så är fallet konkatenerar vi talet k till lista. Proceduren avslutas med att listan returneras. Observera att detta är långt ifrån det effektivaste lösningen, utan ska ses som ett exempel på hur man skriver funktioner Håkan Strömberg 60 KTH STH
Femsiffriga tal med speciell egenskap Bestäm antalet femsiffriga tal n, sådana att då man tar bort siffran i mitten och bildar talet m av de återstående siffrorna, så är m en delare till n, m n i = 0; For[n = 10000, n<=99999, n++, a = IntegerDigits[n]; a = Drop[a, {3, 3}]; m = FromDigits[a]; If[Mod[n, m]==0, i++]; ] i Svar: Det finns 90 sådana tal. Vi slumpar mängder Mängderna A och B kommer att innehålla maximalt 25 slumptal i intervallet 1...100. Vi ska empiriskt ta reda på hur många element A B innehåller genom att utföra simuleringen 100 gånger. antal = 0; For[i = 1, i <= 100, i++, a = Union[Table[Random[Integer, {1, 100}], {i, 25}]]; b = Union[Table[Random[Integer, {1, 100}], {i, 25}]]; antal = antal + Length[Intersection[a, b]]; ] antal/100 // N Ett avslutande exempel Sök upp alla 6-siffriga tal t, sådana att när de 3 sista siffrorna flyttas längst fram, så blir t sex gånger större main[] := Block[{i, l1, l2, t, s = {}}, For[i = 100000, i<=999999, i++, l1 = IntegerDigits[i]; l2 = Flatten[Append[Take[l1, {4, 6}], Take[l1, {1, 3}]]]; t = FromDigits[l2]; If[6*i == t, s = AppendTo[s, i]; ]; ]; s ] main[] {142857} Håkan Strömberg 61 KTH STH
3.3. MÄNGDER Vi löser uppgiften med en funktion, vi kallar för main. När funktionen har exekverats en gång har vi aldrig mer någon nytta av den, mest därför att funktionen saknar inparametrar. I s ska vi lista samtliga lösningar. For-loopen går igenom samtliga sexsiffriga heltal Med hjälp av IntegerDigits packar vi upp ett heltal till en lista med siffrorna som element. Till exemepel 123456 till {1,2,3,4,5,6}. Med Take plockar vi ut tre element i taget från listan l1 Konkatenerar dem med Append till {4,5,6,{1,2,3}} Med hjälp av Flatten plattar vi till listan och får {4,5,6,1,2,3}. FromDigits skapar ett tal från en lista och t får värdet 456123. Om 6i=t lägger vi till i i listan Det enda talet som uppfyller villkoret är 142857 Håkan Strömberg 62 KTH STH
Teoriuppgifter Problem 35 Är det sant att Använd Venndiagram (A B) C = (A C) (B C) Problem 36 Bestäm elementen som tillhör dessa mängder: A = {x x > 10 och x < 17 och x N} B = {x x 2 < 100 och x N} C = {x x = a 2 och a < 10 och a N } D = {x x = 2k+1 och k N} Problem 37 Vilka av följande utsagor är sanna om då M = {0,{1},,{2,3}} a M b M c 1 M d {1} M e {1} M f {{1}} M g {1,2,3} M h {0,1} M Problem 38 I figur 3.12 finns åtta disjunkta mängder. Uttryck dem med hjälp av de beteckningar vi definierat ovan. Problem 39 LåtA = {1,2,3,4,5,6,7} och B = {1,3,5,7,9,11}. Ange mängdernaa B,A B,A B,B A Problem 40 Vid en undersökning av 1000 hushåll visade det sig att 673 hade bil, 552 hade frys, 748 hade TV. 350 hushåll hade både bil och frys, 515 både bil och TV, 462 både frys och TV. I dessa siffror är medräknade de 302 hushåll som har alla tre. Hur många hushåll har varken bil, frys eller TV? Håkan Strömberg 63 KTH STH
3.3. MÄNGDER Figur 3.12: Problem 41 Låt A och B vara två godtyckliga mängder. Uttryck med hjälp av A,B,,, följande tre mängder a {x x tillhör minst en av A och B} b {x x tillhör högst en av A och B} c {x x tillhör exakt en av A och B} Problem 42 Från en marknadsundersökning framkom följande: Antal undersökta personer var 100 Antal som drack kaffe var 78 Antal som drack te var 71 Antal som drack både te och kaffe var 48 Varför kasserades denna undersökning? Problem 43 Ett antal personer deltog i en undersökning, där det framkom att: 50 spelar handboll 61 spelar inte fotboll 13 spelar inte basket 74 spelar åtminstone två av bollsporterna Uppskatta ett maximum och minimum för hur många som deltog i undersökningen. Håkan Strömberg 64 KTH STH
Problem 44 Vad beskriver dessa två rader 0 E if n E, thenn+2 E Problem 45 Ge ett förslag på hur man kan implementera mängder i ett program skrivet i C Problem 46 Uttryck A B med hjälp av termerna A, B och A B Problem 47 Uttryck {1, 2} {2, 3} som en mängd Problem 48 Bestäm P(A) då A = {1,2,3} Problem 49 Är = { }? Problem 50 Vad kan man säga om mängderna A och B? A = {x R sin(x) = 0} B = {nπ n Z} Problem 51 Rita ett Venndiagram över (A B) (A C) Håkan Strömberg 65 KTH STH
3.3. MÄNGDER Problemlösning Problemlösning 16. Poker och fotboll (1) En undersökning visade att utav 100 teknologer, spelar 15 varken poker eller fotboll, 52 spelar poker och 76 spelar fotboll. Hur många av teknologerna spelar både poker och fotboll? Problemlösning 17. Vända kort (1) På ett bord ligger sju kort. På framsidan av varje kort finns en bokstav, A eller B. Baksidan är antingen gul eller grön. Vilket är det minsta antal kort, som man behöver vända på för att korrekt besvara följande fråga: Har alla kort med gul baksida bokstaven A på framsidan? Problemlösning 18. Hästhopp (2) En springare (häst) på schackbrädet flyttas som till vänster i figur 3.13. Genom att väl Figur 3.13: planera dragen, kan en springare flyttas runt på ett n n-bräde i n 2 1 drag och då besöka varje ruta exakt en gång. I figurens mitt visas hur en springare med start i 1 efter 24 drag når rutan med nummer 25. Till höger i figuren finns delar av en liknande vandring, denna gång på ett 6 6-bräde. Din uppgift är nu att fullfölja vandringen genom att fylla i dragnumren i de tomma rutorna. Håkan Strömberg 66 KTH STH
Problemlösning 19. Askarna (2) Figur 3.14: På ett bord står tre askar. Två av dem är tomma men en innehåller ett guldmynt. Askarna är försedda med etiketter med följande texter, från vänster till höger (se även fig 3.14): Denna ask är tom I denna ask finns ett guldmynt Asken i mitten är tom Vi vet att, minst två av dessa påståenden är falska. Kan du utifrån det säga i vilken ask guldmyntet finns? Problemlösning 20. Kulorna i lådan (2) I en låda ligger n > 0 svarta och m > 0 vita kulor. Bredvid ligger en tillräckligt stor hög med enbart svarta kulor. Man tar på måfå två kulor ur lådan. Är kulorna av samma färg lägger man dem åt sidan och i lådan lägger man en svart kula från högen. Är de valda kulorna av olika färg lägger man den svarta åt sidan och den vita tillbaka i lådan. Man upprepar denna operation tills de två sista kulorna i lådan har ersatts med en. Vad kan man säga om färgen på den kula som till sist blir kvar i lådan, för olika värden på m och n? Problemlösning 21. Ett slag under första världskriget (2) Under första världskriget utkämpades ett slag i närheten av ett gammalt slott. En granat förstörde en staty av en riddare med en lans i handen. Detta hände den sista dagen i månaden. Produkten av den dagens datum, månadens nummer, lansens längd uttryckt i hela fot, hälften av åldern på officeren som ledde anfallet och hälften av den tid (uttryckt i år) som statyn befunnit sig utanför slottet är lika med 451066. När uppfördes riddarstatyn utanför slottet? Håkan Strömberg 67 KTH STH
3.3. MÄNGDER Problemlösning 22. Konstiga tärningar (2) Figur 3.15: Talen på dessa tärningar är bara som illustration I den här uppgiften använder vi tre tetraedrar, fyrsidiga kroppar, som tärningar. En kastad tedraeder-tärning läses av genom att lyfta upp den och ta reda på talet i botten. De tillsammans tolv sidorna har var och en ett unikt tal, 1...12. Nedan finns givet en serie av kast med de tre tärningarna. Försök avgöra vilka tal som finns på samma tärning. Tärningarna har lästs av i godtycklig ordning. 2 9 7 11 4 10 12 4 8 1 10 11 3 5 7 3 12 7 5 3 8 5 3 11 11 5 1 7 4 5 7 10 4 11 4 5 10 8 2 8 5 3 1 8 9 1 12 8 6 9 1 1 7 10 6 10 4 8 4 10 Problemlösning 23. Kvadrerad summa (2) För talen 6048 och 1729 gäller (6048+1729) 2 = 60481729 Det vill säga de två ursprungliga, fyrsiffriga talen, återfinns i tur och ordning i slutresultatet om talen först adderas och därefter kvadreras. Ta med hjälp av ett C-program eller med Mathematica reda på hur många ytterligare par av fyrsiffriga heltal det finns med denna egenskap. Problemlösning 24. Julklappar (2) Det största paketet i tomtens säck hade måtten: höjden 5 dm, bredden 5dm och längden 10 dm. Det märkliga är att paketets volym är numeriskt lika stor som paketets area. Hur många paket med denna egenskap kan du konstruera, om paketet måste vara ett rätblock och alla sidorna heltal (dm)? Håkan Strömberg 68 KTH STH
Problemlösning 25. Terrängloppet (2) Adam, Bertil, Curt och David, som vi nu börjar förstå är sportiga typer, ställde upp i en terränglopp. De planerade loppet på följande sätt Adam tänkte springa halva distansen av loppet med 16 km/tim och den andra med 8 km/tim. Bertil tänkte springa halva tiden med 16 km/tim och den återstående tiden med 8 km/tim Curt tänkte springa med en konstant hastighet på 12 km/tim loppet igenom David tänkte starta försiktigt med 7 km/tim under första tredjedelen av distansen och därefter öka till 14 km/tim under den andra tredjedelen och sedan spurta resten med 19 km/tim Hur blev deras inbördes placering? Den enda formel du behöver för att lösa denna uppgift är v = s t Problemlösning 26. Släpp fångarna loss det är vår (2) I ett fängelse finns 26 celler på rad. Vi ser i figuren några av dess dörrar, som från början Figur 3.16: Detta är en korridor i ett fängelse alla är stängda. På fängelset finns också 26 vakter som tillsammans utför följande ritual varje vår: Den första vakten går fram till varje dörr och öppnar dem. Den andra vakten går fram till var annan dörr med början från dörr nummer 2 och stänger dessa dörrar. Den tredje vakten besöker var tredje dörr med början från dörr nummer 3. Om den är öppen så stänger han den. Om den är stängd så öppnar han den.... Den tionde vakten besöker var tionde dörr med början från dörr nummer 10. Om den är stängd så öppnar han den och tvärt om.... Den tjugosjätte och sista vakten går endast fram till dörr nummer 26. Om den är öppen så stänger han den. Om den är stängd så öppnar han den. Fångarna i de cellers vars dörrar nu står öppen släpps fria. I vilka cellnummer finns dessa fångar? Huvudfrågan: Om det från början finns n celler och n vakter, vad kan man då säga om numren på de dörrar som kommer att vara öppna när proceduren är genomförd? Håkan Strömberg 69 KTH STH
3.3. MÄNGDER Problemlösning 27. Undersökning (2) SCB (statistiska Centralbyrån) gjorde en undersökning om befolkningens rökvanor. Man frågade 1000 personer om deras kön, civilstånd och om de eventuellt rökte. Man fick följande data: 418 män 491 gifta 429 rökare 159 manliga rökare 103 gifta rökare 104 gifta män 29 manliga gifta rökare Kan siffrorna vara korrekta? Problemlösning 28. Nyårsfest (2) Sex personer A,B,C,D,E och F firar nyår på en av Stockholms restauranger. Deras födelsedagar infaller under de sex första månaderna på året, men nödvändigtvis inte i den ovan givna ordningen. Följande gälller: Två av personerna, A och januaribarnet är läkare E och februaribarnet är lärare och gifta med varandra Han som är född i mars och C är programmerare B och F är systrar C har samma kön som majbaret och gift med den som är född i juni. B och januaribarnet är syskon Majbarnet och A har aldrig tidigare träffats Bestäm yrke, födelsemånad och kön för de sex personerna. Problemlösning 29. Minsta värdet (3) Man har skrivit tio olika positiva heltal: a,b,c,d,e,f,g,h,i,j,k i ett mönster som i figur 3.17. Varje tal mot vilket två pilar pekar är lika med summan av de två tal som står på andra sidan av pilarna. Vilket är det minst värde d kan ha? Problemlösning 30. På tal om insatser (2) Vi var tre stycken som spelade och gjorde en del insatser: 1 Först vann Adam av Bertil lika mycket som Adam hade från början 2 Därefter vann Bertil lika mycket av Curt, som Bertil hade kvar 3 Slutligen vann Curt av Adam lika mycket som Curt hade kvar 4 Alla hade till sist lika mycket pengar Håkan Strömberg 70 KTH STH
Figur 3.17: 5 Jag började med 50 kronor Vem av de tre var det som sa detta Problemlösning 31. Ormbettet (2) När Adam, under sitt besök i djungeln, fick ett allvarligt ormbett, var han glad att han hade motgift med sig i medicinväskan. Motgiftet bestod av två burkar, burk A och burk B, båda innehållande 3 tabletter. På burkarna stod att han skulle, med 2 timmars mellanrum, samtidigt ta en tablett ur varje burk. Han lade först en tablett ur burk A i handen, men när han skulle hälla ut en tablett ur burk B, råkade två tabletter trilla ut. Det var nu omöjligt att skilja de de tre tabletterna i handen från varandra. Hur skulle Adam nu få i sig rätt dos av motgiftet? Håkan Strömberg 71 KTH STH
3.3. MÄNGDER Lösningar Teoriuppgifter Lösning Teoriuppgift 35 Figur 3.18: Lösning Teoriuppgift 36 Elementen är {11,12,13,14,15} {0,1,2,3,4,5,6,7,8,9} {0,1,4,9,16,25,36,49,64,81} Mängden av udda heltal Lösning Teoriuppgift 37 a Sant b Sant c Falskt d Sant e Falskt f Sant g Falskt h Falskt Håkan Strömberg 72 KTH STH
Lösning Teoriuppgift 38 1 (A B C) 2 A (B C) 3 (A C) B 4 C (A B) 5 (A B) C 6 A B C 7 (B C) A 8 B (A C) Lösning Teoriuppgift 39 Vi ser då att A B {1,2,3,4,5,6,7,9,11} A B {1,3,5,7} A B {2,4,6} B A {9,11} A B = (A B) (A B) (B A) Lösning Teoriuppgift 40 Om vi har två mängder A och B med A respektive B element förstår vi att uttrycket A B = A + B A B. När vi adderar A + B tar vi ju med A B två gånger. Utvidgar vi resonemanget till tre mängder får vi formeln som ger A B C = A + B + C ( A B + A C + B C )+ A B C A B C = 673+552+748 (350+515+462)+302 = 948 och U A B C = 1000 948 = 52. 52 hushåll saknar bil, frys och TV. Lösning Teoriuppgift 41 a) A B b) (A B) c) A B (A B) Lösning Teoriuppgift 42 Vi tar till ett Venndiagram för att lösa detta problem. Cirkeln till vänster symboliserar kaffedrickarna och cirkeln till höger tedrickarna. I den area som är gemensam för de båda cirklarna finns de 48 personerna som drack båda dryckerna. Totalt fanns 78 kaffedrickare. Vi vet då att fanns 30 personer som enbart drack kaffe. På samma sätt kan vi bestämma Håkan Strömberg 73 KTH STH
3.3. MÄNGDER Figur 3.19: att det fanns 23 personer som enbart drack te. Då 48+30+23 = 101 100 förstår vi att undersökningen inte är genomförd på ett tillförlitligt sätt! Lösning Teoriuppgift 43 Figur 3.20: Vi har tre olika aktiviteter F fotboll, H handboll och B basket. Ur Venndiagrammet i figur 3.20 kan vi läsa 8 olika delmängder. De personer som till exempel tillhör delmängd f, spelar fotboll och handboll, men inte basket. Personer i delmängden a, utövar ingen av de tre sporterna. Vi antar att det deltog n personer i undersökningen. Med hjälp av problemtexten kan vi teckna följande samband: c+e+f+h = 50 a+b+c+e = 61 a+c+d+f = 13 e+f+g+h = 74 a+b+c+d+e+f+g+h = n Tyvärr har vi endast 5 ekvationer för de 9 obekanta och måste använda en mer resonerande teknik, än att lösa ett ekvationssystem. Vi bestämmer först maximum för n. Tekniken blir att försöka bevisa en övre gräns för n. Om vi sedan kan visa att det finns en uppsättning data som möjliggör denna övre gräns har vi bestämt maximum hos n. Adderar vi ekvationerna på rad (3) och (4) i systemet ovan får vi a+c+d+e+2f+g+h = 13+74. Minskar vi det vänstra ledet med f, så kan vi skriva a+c+d+e+f+g+h 87. Från rad (2) kan vi påstå att b 61. Adderar vi denna olikhet till föregående uttryck får vi Håkan Strömberg 74 KTH STH
a+b+c+d+e+f+g+h 148. Nu har vi bevisat att n inte kan vara större än 148. Att n verkligen kan vara 148 ser vi om vi sätter h = 50,b = 61,d = 13,g = 24 och resten till 0 och testar de fem villkoren. Vi har alltså visat att n kan vara 148 men inte större. Vi bestämmer nu minimum förn. e c+e+f+h = 50 får vi fram från rad (1) i systemet. Samtidigt ser vi att a+b+c = 61 e, men eftersom e 50 så måste a+b+c 11. Nu kan vi skriva n = (a+b+c)+(e+f+g+h)+d 11+74+0 = 85. n kan alltså inte vara mindre än 85, men kan n vara 85? För att det ska vara möjligt måste a+b+c = 11, d = 0 och e = 50. Men om e = 50 får vi från rad (1) att c = f = h = 0, vilket betyder att a+c+d+f = a 11, men i rad (3) i systemet hittar vi a+c+d+f = 13, vilket är en motsägelse och medför att n inte kan vara 85. Så då får vi gå vidare och hoppas att n = 86 är möjligt. Kan vi hitta en uppsättning data för detta värde är allting klart. Vi ökar på a+b+c till 12 med d = 0, som medför att e = 49. c+f+h = 1. Eftersom a+b+c = 12 och a+c+f = 13 (från rad (3)) är f = b+1. Till slut får vi a = 12, b = 0, c = 0, d = 0, e = 49 f = 1, g = 24 och h = 0 Vi löser problemet med ett C-program Med hjälp av datorn kan vi som bekant testa en mängd kombinationer på kort tid. I detta problem vet vi redan att antalet kombinationer är relativt litet. Eftersom vi har fyra villkor (ekvationer), så måste vi variera fyra obekanta inom rimliga gränser. 1 void main(void){ 2 int t[1000]={0}; 3 int a,b,c,d,e,f,g,h,i,n; 4 for(a=0;a<=13;a++) 5 for(c=0;c<=13;c++) 6 for(d=0;d<=13;d++) 7 for(e=0;e<=50;e++){ 8 f=13 (a+c+d); 9 b=61 (a+c+e); 10 h=50 (c+e+f); 11 g=74 (e+f+h); 12 if(f>=0 && b>=0 && h>=0 && g>=0) 13 t[a+b+c+d+e+f+g+h]=1; 14 } 15 for(i=0;i<1000;i++) 16 if(t[i]) printf("%4d",i); 17 } Kommentarer: 4-13 Fyra loopar. De gäller att välja ut fyra storheter så att vi med hjälp de fyra givna villkoren kan bestämma de andra fyra storheterna. Här har vi valt a, c, d och e att variera. 8-11 De andra fyra kan vi nu beräkna. 12 De uträknade storheterna måste alla vara 0 13 Summan av de åtta variablerna bestämmer antalet personer i undersökningen. I arrayen t finns från början enbart 0:or. När vi nu bestämt ett speciellt n, summan av variablerna, går vi in i cellen med motsvarande index och sätter dess värde till 1. Håkan Strömberg 75 KTH STH
3.3. MÄNGDER 15-16 Index hos de celler i arrayen t som har värdet 1 skrivs ut, som bevis på att detta antal personer kan ha ingått i undersökningen. Programmet ger samma svar som vårt tidigare bevis, dessutom får vi reda på att alla n i intervallet [86...148] är möjliga. Lösning Teoriuppgift 44 Raderna beskriver med hjälp av rekursion mängden av jämna naturliga tal Lösning Teoriuppgift 45 Deklarera en array av heltal, lika stor som antalet element i universum. För de element som ingår i mängden sätts motsvarande cell till 1. En 0:a innebär att detta element inte ingår. Om man har två mängder (arrayer), A och B och summerar cellerna på motsvarande platser kommer A B att motsvaras av alla element = 2 och A B av element >= 1. Lösning Teoriuppgift 46 A B = A + B A B Lösning Teoriuppgift 47 {(1,2),(1,3),(2,2),(2,3)} Lösning Teoriuppgift 48 P(A) = {,{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}} Lösning Teoriuppgift 49 Nej, är en mängd som inte innehåller något element. { } är en mängd som innehåller ett element. Detta element är den tomma mängden. Däremot är { }. Lösning Teoriuppgift 50 A = B Lösning Teoriuppgift 51 Vi startar med att måla allt utom A B gult. Därefter A C blått. Det som tidigare var gult Figur 3.21: om som nu målas över med blått blir förstås grönt. Resultatet är den gröna mängden Håkan Strömberg 76 KTH STH
Laboration Laborationsuppgift 16. Fermats tal (2) F m kallas Fermats tal på formen 2 2m +1 a) För vilka 1 m 13 är F m ett primtal? b) Hur många siffror har F 13 Laborationsuppgift 17. Vinklar (2) Generera en lista med vinklar från 0 till 360 grader med ett steg om 10 grader, där vinklarna är uttryckta i radianer. Bestäm sedan sin(x) för dessa vinklar med hjälp av Map. Hur många värden av talen i listan kan uttryckas utan att sin används? För π använder man Pi, även om det kan tyckas som att pi fungerar lika bra. Laborationsuppgift 18. Lista av listor (2) Generera en lista med följande struktur: {{},{},{}}. I var och en av de tre mindre listorna ska finnas tre slumpmässiga heltal i intervallet [2,14]. Laborationsuppgift 19. Siffersumman till tresiffriga tal (2) Bestäm alla tresiffriga heltal t, där t är 11 gånger större än dess siffersumma. Laborationsuppgift 20. Pandigital (3) Här vill vi ha reda på alla heltal n, som är sådana att n 2, innehåller de nio siffrorna 1...9 precis en gång. Laborationsuppgift 21. Summan av kuben på talets siffror (2) Det märkliga med talet 153 är att 1 3 +5 3 +3 3 = 153 Det vill säga att summan av kuben på talets siffror är talet självt. Det finns ytterligare tre tal med denna egenskap vilka? Laborationsuppgift 22. Vänskapliga rektanglar (2) I figur 3.22 ser du ett par vänskapliga rektanglar, den ena har samma mätetal för omkretsen som den andra har för arean, 24, samtidigt som den andra har samma mätetal för omkretsen som den första har för arean, 20. Ta reda på samtliga par av vänskapliga rektanglar där alla mått är positiva heltal. Ingen sida visar sig vara längre än 55. Håkan Strömberg 77 KTH STH
3.3. MÄNGDER Figur 3.22: Laborationsuppgift 23. Vilka tal ingår i mängden? (2) Vilka är de positiva heltal n sådana att n är udda n inte är ett primtal n < 1000 n har siffersumman 14. (summan av de i talet ingående siffrorna) Laborationsuppgift 24. Vilka är talen? (3) Alla udda heltal, utom två stycken, i intervallet [2...8999] är antingen ett primtal eller kan skrivas som p + 2 x 2, det vill säga som summan av ett primtal och 2 gånger en heltalskvadrat. Till exempel är 55 = 5+2 5 2, eller 27 = 19+2 2 2. Vilka är dessa tal? Håkan Strömberg 78 KTH STH
Dagens Teori 4.4 Funktioner En funktion är en regel som till varje objekt i en mängd A associerar ett objekt i en annan mängd B Figur 4.23: Första gången vi normalt hör talas om funktioner i matematisk mening, är i gymnasiets kurser i matematik. Då förknippas ordet funktion, med till exempel uttrycket f(x) = 3x 2 3x+1 som är en polynomfunktion. Vi plockar ett tal x ur mängden A, som här är mängden av reella tal och sätter in det i funktionen. Resultatet f(x) är ett tal ur mängden B, som också är mängden av reella tal. Det är inte trivialt, att säga vilka f(x) som är möjliga som funktionsvärden för godtyckligt valda x. Nästa gång ordet funktion dyker upp i utbildningen är kanske i samband med kurser i programmering. Dataloger och matematiker är ofta sysselsatta med att utveckla metoder för att snabbt kunna beräkna funktionsvärden float hyp(float a,float b){ return sqrt(a*a+b*b); } En funktion i C, som tar emot längden av två katetrar och returnerar längden hos tillhörande hypotenusa. Här är A mängden av alla par av tal (a, b), där a och b är positiva reella tal. Mängden B är mängden av alla positiva reella tal. Sättet att skriva funktionen varierar, beroende på i vilken miljö man befinner sig. Så här skrivs samma funktion i Mathematica f[x_,y_]:=sqrt[x^2+y^2] Håkan Strömberg 79 KTH STH
4.4. FUNKTIONER och så här skulle en matematiker uttrycka sig f(a,b) = a 2 +b 2 Men ordet används också till vardags, som till exempel: Vilken funktion har den här knappen?. Vi trycker på en knapp och får som resultat att TV:n stängs av. Eller vi trycker på antal knappar i bestämd ordning och får som resultat att porten öppnas. Denna inledning kan sammanfattas med figuren: Figur 4.24: En funktion kan ses som en svart låda. Till vänster stoppar vi in ett objekt. Något händer inne i lådan och ut till höger kommer resultatet som ett objekt. I det fall funktionen kräver flera värden, ska man se objektet man sätter in i funktionen, som en ordnad lista av värden, ett element ur en kartesisk produkt. På samma sätt ska man betrakta utdata. Man kan säga att det alltid handlar om ett objekt som indata och ett som utdata. Tänk i fortsättningen på funktioner som något mer allmänt än en andragradsfunktion i matematiken. Det enda som är viktigt är att: För ett givet, tillåtet, inobjekt finns precis ett utobjekt. Att bestämma den framtida folkmängden n i ett land år m, baserad på demografiska modeller, är en funktion från mängden av årtal till mängden av heltal Kryptering är en funktion från mängden av meddelande i klartext till en, till synes, meningslös följd av tecken. En gång till.... En funktion f från en mängd A till en mängd B, skrivs ibland f : A B Detta är en regel, som till varje objekt a A tilldelar exakt ett objekt f(a) B. Definition 16 Mängden A kallas definitionsmängden, den mängd för vilka funktionen är definierad. Det vill säga den mängd av objekt för vilka det går att bestämma ett element i B. Håkan Strömberg 80 KTH STH
Definition 17 Mängden B kallas värdemängden av f, funktionens olika värden. Elementet f(a) är bilden av a eller värdet av f för a. En funktion f är ofta identifierad med dess graf (kurva) som skrivs {(a,b) a A och b = f(a)} Bilden av en funktion uttrycks f(a) = {f(x) x A} Exempel 28 Låt X = {1,2,3} och Y = {A,B,C}. Bildar vi nu den kartesiska produkten X Y får vi mängden X Y = {(1,A),(1,B),(1,C),(2,A),(2,B),(2,C),(3,A),(3,B),(3,C)} Genom att plocka ut lämpliga par ur denna mängd kan vi bilda olika funktioner. Till exempel f = {(1,B),(2,B),(3,C)} som kan åskådliggöras genom figur 4.25 För att avgöra om detta är en funktion har vi att Figur 4.25: kontrollera att det går en och endast en pil från varje element i X Exempel 29 Varför är detta ingen funktion (figur 4.27)? För f(1) är inte entydigt bestämt Figur 4.26: Exempel 30 Varför är detta ingen funktion (figur 4.27)? f(3) är inte definierat. Tittar vi tillbaka på X Y ser vi att vi kan bilda många funktioner, närmare bestämt 3 3 = 27 stycken. För varje x X har vi tre möjligheter att dra pilen, 3 3 = 9. Håkan Strömberg 81 KTH STH
4.4. FUNKTIONER Figur 4.27: Exempel 31 Hur många olika funktioner kan man konstruera då och X = {1,2,5,9,10} Y = {100,102,103,104,105,106,107} Eftersom X = 5 och Y = 7 kan man konstruera 7 5 = 16807 olika funktioner genom att plocka ut lämpliga par ur X Y. Vi ska nu studera funktioner med speciella egenskaper. 4.4.1 Injektiva funktioner En funktion f : X Y sägs vara injektiv om för alla a 1 a 2 X f(a 1 ) f(a 2 ). Vad innebär nu detta? Om vi håller oss till bilder, kan vi säga: att för en injektiv funktion, finns det aldrig två eller flera pilar, som pekar ut samma element i Y. Håller vi oss till den kartesiska produkten X Y, så förekommer elementen i Y i högst ett par. Exempel 32 Funktionen f i figur 4.28 är injektiv. Något man inte kan säga om funktionen g. Figur 4.28: Håkan Strömberg 82 KTH STH
Exempel 33 Hur många olika injektiva funktioner, kan man konstruera då och X = {1,2,5,9,10} Y = {100,102,103,104,105,106,107} För x = 1 har vi 7 olika möjligheter att välja y. För x = 2 har vi nu 6 olika möjligheter och så vidare till x = 10 då vi endast har tre möjligheter kvar. Antalet möjliga injektiva funktioner blir då 7 6 5 4 3 = 2520 Ett annat namn på injektiv funktion är ett-till-ett funktion. Exempel 34 Som ett exempel: Mängden och mängden X = {svenska medborgare} Y = {möjliga personnummer} Vi är nu intresserade av f : X Y. Väljer vi ut en godtycklig svensk medborgare, så kan myndigheterna ta reda på dennes personnummer. Väljer vi ut ett personnummer vilket som helst, så är det inte säkert (knappast troligt) att det finns någon person med detta personnummer. Funktionen f är injektiv eftersom det inte finns två människor med samma personnummer. Exempel 35 Om och X = {alla på jorden nu levande människor} Y = {n n motsvarar antalet hårstrån man har på huvudet} Vi är nu intresserade av funktionen f : X Y. Väljer vi ut en godtyckligt individ, kan vi på något sätt fastställa antalet hårstrån på huvudet, hos denna individ. Väljer vi däremot ut ett n, som står för ett visst antal hårstrån på huvudet, kommer vi inte med säkerhet att kunna avgöra, vilken individ som avses. Funktionen f är inte injektiv. Detta beror framför allt på att X är betydligt större än Y. Alltså att det finns fler människor på vårt klot än antalet hårstrån som någon människa har på sitt huvud. 4.4.2 Surjektiva funktioner En funktion f : X Y sägs vara surjektiv, om alla element i värdemängden Y är en bild till åtminstone ett element x X. Här passar vi på att införa två nya beteckningar när vi uttrycker definitionen för en surjektiv funktion Håkan Strömberg 83 KTH STH
4.4. FUNKTIONER Definition 18 y Y x X (f(x) = y) utläses för alla och utläses finns det. Det står alltså: För alla y som tillhör Y finns det x som tillhör X, sådana att f(x) = y Exempel 36 Funktionen f i figur 4.29 är surjektiv. Däremot är inte funktionen g surjektiv då D inte är bild till något element i X = {1, 2, 3, 4} Figur 4.29: Om vi i exemplet med personnummer, istället väljer Y till just nu använda personnummer Y = {just nu använda personnummer} är f surjektiv. Hade vi istället definierat Y, som mängden av alla tänkbara personnummer, hade funktionen inte varit surjektiv eftersom vi inser att antalet möjliga personnummer vida överstiger Sveriges folkmängd. När det gäller antalet hårstrån på huvudet, så har jag hittat en uppgift om att en människa har mellan 100000 och 300000 tusen hårstrån på huvudet. Tar vi för säkerhets skull till en övre gräns på 600000 hårstrån, så är definitivt X > Y. Om det sedan är så att det finns en person med precis ett hår på huvudet, kan vi inte veta säkert och därför kan vi inte avgöra om f är surjektiv. Exempel 37 Hur många olika surjektiva funktioner, kan man konstruera då och X = {1,2,5,9,10} Y = {100,102,103,104,105,106,107} Svaret är ingen. För att en funktion ska kunna vara surjektiv krävs att X Y. Så därför byter vi plats på mängderna och X = {100,102,103,104,105,106,107} Y = {1,2,5,9,10} och ställer samma fråga, som inte är så enkel att besvara! Vi inser att det måste vara < X Y. { } 7 5! = 16800 5 Håkan Strömberg 84 KTH STH
4.4.3 Bijektiva funktioner En funktion sägs vara bijektiv om den är både injektiv och surjektiv. Löst uttryckt. En bijektiv funktion är en funktion Där inga pilar från X går till samma element i Y Det går minst en pil till varje element i Y. Vad kan man då säga om X och Y? Jo att X = Y. Exempel 38 Funktionen f är inte bijektiv. Dels därför att f(2) = f(3) = B och därför att det inte finns något x X så att f(x) = D. Funktionen g är däremot bijektiv. Figur 4.30: Exempel 39 Exemplet med personnummer, där Y:s element är just nu använda personnummer, är bijektiv. Hur är det då med funktionen f : X Y, där X = {0,1,2,...} (de naturliga talen) och Y = {... 2, 2,0,1,2,...} (de hela talen). Vi skriver funktionen f(x) = x då x är jämnt 2 f(x) = 1 x 2 då x är udda Här handlar det om en definitionsmängd X och en värdemängd Y, där både X och Y är obegränsade. Det blir ofta lite knepigare då! Vi slår fast att för varje x X finns det precis ett y Y. Alltså handlar det om en funktion. För ett givet värde y Y kan vi bestämma vilket x X då f(x) = y. Är y negativt vet vi att x är udda. Genom sambandet x = 1 2y kan vi bestämma ett entydigt x. På samma sätt, om y är positivt, får vi x = 2y. Av detta sluter vi oss till att f(x) är bijektiv. Men hur är det då med X = Y. Har de två mängderna lika många element? Se nedan En bijektiv funktion f har alltid en invers, som skrivs f 1. Med detta avses att om vi byter plats på elementen i alla par så har vi fortfarande en funktion. Håkan Strömberg 85 KTH STH
4.4. FUNKTIONER Exempel 40 Den bijektiva funktionen har inversen f = {(1,4),(3,7),(5,6)} f 1 = {(4,1),(7,3),(6,5)} som är en funktion. Detta gäller inte för funktionen eftersom g = {(1,a),(2,b),(3,b)} g 1 = {(a,1),(b,2),(b,3)} inte är en funktion. g 1 (b) har inget entydigt värde. Exempel 41 Hur många bijektiva funktioner kan man skapa medx = {1,3,5,7} ochy = {a,aa,aaa,aaaa} Till x = 1 kan vi välja 4 olika bilder. Till x = 2 kan vi välja 3 och till x = 3 återstår 2 möjligheter. Till x = 4 har vi inget val, det finns bara en möjlig bild kvar. Vi kan skapa 24 bijektiva funktioner. Exempel 42 Hur är det med funktionerna är de injektiva, surjektiva och/eller bijektiva? 4 3 2 1 = 24 f(x) = 3x+1 g(x) = x 2 Definitionsmängden för båda funktionerna är X = R. Vilka är då värdemängderna? För Y f = R och för Y g = R +. f(x) är både injektiv och surjektiv och därmed bijektiv. g(x) är surjektiv men inte injektiv och därmed heller inte bijektiv. En bijektiv funktion har en invers. f 1 (y) = y 1 3 När man väl har räknat ut inversen ersätter man y med x och får g(x) har ingen ivers funktion ty f 1 (x) = x 1 3 g 1 (x) = ± x Vilket betyder att det till varje x finns två y Håkan Strömberg 86 KTH STH
4.4.4 Relationer Relationer mellan två mängder (eller fler) förekommer ofta inom matematiken och dess tillämpningar. Några exempel: Relationen mellan heltalen och deras delare, mellan 12 och (1,2,3,4,6,12) Relationen mellan de reella talen och log 10, mellan 240.78 och 2.38162 Relationen mellan läraren och hans studenter Relationen mellan städerna och vägarna mellan dem Relationen mellan personer och deras släktingar Vi utgår från personerna S = {Adam, Bertil, Curt, David} och genererar produktmängden S S, {{Adam,Adam}, {Adam,Bertil}, {Adam,Curt}, {Adam,David}, {Bertil,Adam}, {Bertil,Bertil}, {Bertil,Curt}, {Bertil,David}, {Curt,Adam}, {Curt,Bertil}, {Curt,Curt}, {Curt,David}, {David,Adam}, {David,Bertil}, {David,Curt}, {David,David}} Relationen son till är av delmängd av S S, till exempel {Adam,Bertil}, {Bertil,Curt}, {David,Curt} vilket betyder att Adams pappa heter Bertil, att Adams farfar heter Curt och att David är Adams farbror. Vi uttrycker R = {(x,y) : x son till y}. En relation kan utgöra en funktion om det till varje x finns precis ett y. Vårt exempel är därför en funktion då personer har en och endast en far. Vi skriver relation med stort R och där R S S. Ett element a A är relaterad till b B i relationen R om (a,b) R, arb. Just då A = B som i detta exempel, där A = B = S, kallar vi relationen en binär relation. En binär relation R på A kan ha följande egenskaper, där a,b,c A Reflexiv. En relation R är reflexiv då ara för alla a R. Hit hör till exempel likhetsrelationen. Däremot inte relationen mindre än eftersom inte både a < b och b < a kan gälla samtidigt. Relationen kan uttryckas predikatlogiskt som x(xrx) Symmetrisk. En relation R är symmetrisk då arb medför att bra. Till exempel relationen gift med x y(xry yrx) Antisymmetrisk En relation är antisymmetrisk då (a,b) R men då (b,a) R, utom då x = y. x y(xry yrx x = y) Transitiv. En relation är transitiv om arb och brc medför att arc. Till exempel är relationen mindre än transitiv. x y z(xry yrz xrz) Om en relation har alla dessa tre egenskaper kallas den för en ekvivalensrelation. En relation som är reflexiv och transitiv men inte symmetrisk är en ordningsrelation I figur 4.31 ser vi två sätt att åskådliggöra relationen R A B, där R = {(a,x),(b,y),(b,w),(c,v),(d,z),(d,v)} Håkan Strömberg 87 KTH STH
4.4. FUNKTIONER x y z v w a 1 0 0 0 0 b 0 1 0 0 1 c 0 0 0 1 0 d 0 0 1 1 0 Figur 4.31: Två sätt att åkådliggöra en relation En godtycklig binär relation R A A där A har n objekt, A = n kan bildas på 2 n2 sätt. För varje element i matrisen R(n n) har vi två val, med eller inte med i relationen. En reflexiv binär relation R A A där A har n objekt, A = n kan bildas på 2 n(n 1) sätt. Alla element i matrisen har två val utom de som ligger på huvuddiagonalen, 2 n2 n = 2 n(n 1) En symmetrisk binär relation R A A där A har n objekt, A = n kan bildas på 2 n(n+1)/2 sätt. Antal element över matrisens diagonal är n(n 1) 2 plus n. För antalet transitiva binära relationer R A A där A har n objekt, A = n finns ingen känd formel. Några exempel på relationer och vilka egenskaper de har Mängd Relation Reflexiv Symmetrisk Transitiv = ja ja ja nej ja nej R ja nej ja R < nej nej ja N {0} är en delare till ja nej ja Alla mängder av mängder ja nej ja Alla mängder av mängder nej nej ja Håkan Strömberg 88 KTH STH
4.4.5 Kardinaltal Varje mängd X kan tilldelas ett kardinaltal. Mängder med samma kardinalitet har samma kardinaltal. Kardinaltalet syftar till antalet element i mängden. Så länge det handlar om ändliga mängder är det inga problem. Kardinaltalet är då lika med antalet element. Antalet element i mängden A skrivs A. Värre blir det då vi rör oss med icke ändliga mängder, som till exempel N eller R. Då skiljer man i första hand mellan uppräkneliga och icke uppräkneliga mängder. N är uppräknelig men R är icke uppräknelig. Även Z är uppräknelig genom att skriva talen Z = {0, 1,1, 2,2, 3,3...} förstår man detta. Uppräkneliga mängder har alla samma kardinaltal. Detta skrivs ℵ 0. Mer om detta ingår inte i denna kurs. Alltså är funktionen i exempel 13 bijektiv. Håkan Strömberg 89 KTH STH
4.4. FUNKTIONER 4.4.6 Schemat från How to Solve It Denna arbetsplan, över hur man kan eller bör bete sig när man ska lösa ett problem är hämtad från boken How to Solve It. Detta är den mest kända boken inom området som skrevs redan 1945 av den kände matematikern G Polya. Det kan vara bra att konsultera dessa råd, då du inte omedelbart kan leverera en lösning till ett problem. Att förstå problemet För det första. Du måste verkligen förstå problemet som ska lösas Vad är det som söks? Vad är det som är givet? Hur lyder villkoret? Är det möjligt att uppfylla villkoret? Är villkoret tillräckligt för att bestämma den obekanta? Eller är det otillräckligt? Eller överflödigt? Eller motsägelsefullt? Rita en figur. Inför lämpliga beteckningar. Dela upp villkorets olika delar. Kan du skriva ned dem? Att göra upp en plan För det andra. Sök sambandet mellan de givna uppgifterna och den obekanta. Du kan bli tvungen att hitta på ett hjälpproblem ifall du inte kan finna sambandet direkt. Slutligen skall du komma fram till en plan för lösningen. Har du sett detta förut? Har du sett samma problem i en något annorlunda form? Känner du till något närbesläktat problem? Känner du till någon sats som skulle kunna användas? Betrakta den obekanta! Försök finna ett känt problem med samma eller liknande obekanta storhet. Här är ett närbesläktat problem, som är löst förut. Skulle du kunna använda det? Skulle du kunna använda dess resultat? Eller dess metod? Skulle du kunna införa någon hjälpstorhet för att kunna använda det? Håkan Strömberg 90 KTH STH
Om du inte kan lösa det givna problemet, försök först lösa något liknande problem. Kan du komma på något närbesläktat problem, som är lättare att angripa? Ett allmännare problem? Ett mer speciellt problem? Ett analogt problem? Skulle du kunna lösa en del av problemet? Behåll endast en del av villkoret, förkasta den andra delen. I vilken grad är den okända storheten då bestämd, hur kan den variera? Skulle du kunna härleda någonting användbart ur de givna uppgifterna? Kan du komma på andra data, lämpliga för att bestämma den okända storheten? Skulle du kunna ändra den obekanta eller det givna, eller bådadera om nödvändigt, så att den nya okända storheten och de nya givna uppgifterna ligger närmare varandra? Skulle du kunna formulera om problemet? Skulle du kunna formulera om det ytterligare? Gå tillbaka till definitionen. Använde du alla de givna uppgifterna? Använde du hela villkoret? Har du tagit hänsyn till alla nödvändiga begrepp som ingår i problemet? Att genomföra planen För det tredje Genomför planen. När du genomför den plan som utformats för lösningen, så kontrollera varje steg. Kan du klart se att steget är korrekt? Kan du bevisa att det är riktigt? Håkan Strömberg 91 KTH STH
4.4. FUNKTIONER Att se tillbaka För det fjärde. Granska den funna lösningen. Kan du kontrollera resultatet? Kan du kontrollera bevisföringen? Kan du härleda resultatet på något annat sätt? Kan du se det direkt? Kan du använda resultatet eller metoden på något annat problem? Mathematica Kartesisk produkt I Mathematica kan man ordna till en kartesisk produkt med hjälp av en funktion som nedan kartesi[a_,b_]:=block[{m ={},i,j}, For[i=1,i<=Length[a],i++, For [j=1,j<=length[b],j++, AppendTo[m,{a[[i]],b[[j]]}] ] ]; m ] kartesi[{1, 3}, {a, b, c}] {{1, a}, {1, b}, {1, c}, {3, a}, {3, b}, {3, c}} Indata till proceduren är två mängder med vilket antal element som helst. Utdata ska vara en mängd med flera, två element långa listor (ordnade par). Att det handlar om en dubbelloop känns väl naturligt? Om vi vill bilda kartesiska produkten av tre mängder A B C borde man kunna anropa kartesi på följande sätt kartesi[{1, 3}, kartesi[{a, b}, {X, Y}]] {{1, {a, X}}, {1, {a, Y}}, {1, {b, X}}, {1, {b, Y}}, {3, {a, X}}, {3, {a, Y}}, {3, {b, X}}, {3, {b, Y}}} Idén är alltså att först bygga upp den kartesiska produkten för två mängder och sedan köra den mot den tredje mängden. Men som vi ser fungerar det inte helt och hållet. Vi får ett parentespar för mycket. Vi vill ju ha listor med 3 element i varje. För detta använder vi först Flatten för att ta bort alla underlistor och sedan Partition med argumentet 3 för att skapa listor med längden 3. Partition[Flatten[kartesi[{1,3},kartesi[{a,b},{x,y}]]],3] {{1, a, x}, {1, a, y}, {1, b, x}, {1, b, y}, {3, a, x}, {3, a, y}, {3, b, x}, {3, b, y}} Håkan Strömberg 92 KTH STH
Ett urval Nu vill vi välja ut några av de ingående listorna i en kartesisk produkt. Vi ska då använda kommandot Select. Kommandot består av ett villkor som testas för alla element som ingår i en lista (eller mängd). m={2,3,4,6,12}; m2=kartesi[m,m] f[x_] := Mod[x[[2]], x[[1]]] == 0 Select[m2, f] Vi startar med mängden m Vi skapar m m och får en mängd med 25 par (små listor). Vi definierar en funktion som returnerar True om det första elementet i listan x är en delare till det andra elementet, x 1 x 2. Med Select väljer vi nu ut de par i m m för vilka funktionen f returnerar true. Det finns inga överraskningar i resultatet, eller hur {{2,2},{2,4},{2,6},{2,12},{3,3},{3,6}, {3,12},{4,4},{4,12},{6,6},{6,12},{12,12}} Är det här urvalet från m m en funktion? Nej, det syns ju lång väg. Är detta en funktion? Vi ska skriva en rutin som slumpmässigt plockar ut en delmängd av A B och sedan testar om denna delmängd är en funktion. Vi startar med att skapa den kartesiska produkten. a={1,2,3,4}; b={1,4,5}; m=kartesi[a,b]; Vi beskriver slantsingling i Mathematica genom slant[]:=random[integer, {1, 2}] Så kommer funktionen, som ska plocka ut en slumpmässig delmängd av A B. randsub[m_] := Block[{m1 = {}, i}, For[i = 1, i <= Length[m], i++, If[slant[] == 1, AppendTo[m1, m[[i]]]; ]; ]; m1 ] randsub(m); [[1, 1],[2, 1],[2, 4],[3, 1],[4, 5]] Håkan Strömberg 93 KTH STH
4.4. FUNKTIONER I detta försök visar det sig att urvalet inte kan vara en funktion. Varför? Om vi ska låta Mathematica testa om resultatet är en funktion kan funktionen test[m,length[a]] komma att se ut på följande sätt. test[m_,n_]:=block[{s={},i}, s=table[m[[i,1]],{i,1,length[m]}]; ns=length[union[s]]; Length[s]==ns && n=ns ] Indata är en delmängd av den kartesiska produkten, här kallad m och Length[a] antalet element i definitionsmängden. Rutinen går igenom alla par och plockar ut a ur alla par a,b, som sätts samman till en lista. I denna lista får inte finnas några dubbletter och antalet olika värden måste överensstämma med antalet element i mängden a, 4 i vårt exempel. Så funktionen som binder allt samman simulera[m_,n_]:=block[{m1,k=0,i}, For[i=1,i<=10000,i++, m1=randsub[m]; If[test[m1,n], k=k+1; ] ]; k/100 // N ] simulera[m,length[a]]; 1.95 Ungefär 2% av alla slumpmässiga urval leder till en funktion. Så några funktioner som testar olika egenskaper hos en relation Slumpmässig relation a = {1, 3, 5, 6}; b = {2, 3, 4, 7}; skapa[a_, b_] := Block[{s = {}, i, j}, For[i = 1, i <= Length[a], i++, For[j = 1, j <= Length[b], j++, If[Random[Integer, {1, 2}] == 1, AppendTo[s, {a[[i]], b[[j]]}]; ] ] ]; s ] Håkan Strömberg 94 KTH STH
4.4.7 Test om reflexiv reflexiv[r_] := Block[{i, ok = True}, For[i = 1, i <= Length[r], i++, If[! MemberQ[r, {r[[i, 1]], r[[i, 1]]}]! MemberQ[r, {r[[i, 2]], r[[i, 2]]}], ok = False; Break[] ] ]; ok ] 4.4.8 Test om symmetrisk symmetrisk[r_] := Block[{i, ok = True}, For[i = 1, i <= Length[r], i++, If[! MemberQ[r, {r[[i, 2]], r[[i, 1]]}], ok = False; Break[] ] ]; ok ] 4.4.9 Test om antisymmetrisk antisymmetrisk[r_] := Block[{i, ok = True}, For[i = 1, i <= Length[r], i++, If[MemberQ[r, {r[[i, 2]], r[[i, 1]]}] && r[[i, 1]]!= r[[i, 2]], ok = False; Break[] ] ]; ok ] Håkan Strömberg 95 KTH STH
4.4. FUNKTIONER 4.4.10 Test om transitiv transitiv[r_] := Block[{i, j, ok = True}, For[i = 1, i <= Length[r], i++, For[j = 1, j <= Length[r], j++, If[r[[i, 2]] == r[[j, 1]] &&! MemberQ[r, {r[[i, 1]], r[[j, 2]]}], ok = False; Break[] ] ] ]; ok ] Test av framslumpade relationer testa[x_, y_] := Block[{i, r, fr}, fr = Table[0, {i, 1, 4}]; For[i = 1, i <= 1000, i++, r = skapa[x, y]; If[reflexiv[r], fr[[1]]++ ]; If[symmetrisk[r], fr[[2]]++ ]; If[antisymmetrisk[r], fr[[3]]++ ]; If[transitiv[r], fr[[4]]++ ] ]; fr ] En testkörning x = {1, 2, 3, 4}; y = {1, 2, 3, 4}; testa[x, y] Kan till exempel ge 64,21,154,50, det vill säga det mest troliga är att en relation är antisymmetrisk. Håkan Strömberg 96 KTH STH
Perfekta tal Talet 12 har delarna 1,2,3,4,6,12. Summan av delarna är 28. Talet 6 har delarna 1,2,3,6. Summan av delarna är 12. De tal t vars delare summerar till 2t kallas perfekta tal. Därför är 6 ett perfekt tal, men inte 12. Skriv en procedur som tar reda på alla perfekta tal upp till en given gräns n perfect[n_]:=block[{lista={},i,s}, For [i=1,i<=n,i++, s=apply[plus,divisors[i]]; If[s==2*i, AppendTo[lista,i] ] ]; lista ] Det perfekta talen < 10000 är 6,28,496,8128. Ingen vet om det finns något udda perfekt tal. Divisors. Mathematica-nyheter i detta program är Divisors[n] som returnerar en mängd med delarna till n. Apply. Kommandot s=apply[plus,l] summerar alla talen i listan l, där Plus är en fördefinierad funktion. Sociala tal Definition: Vi startar med ett tal n och bestämmer σ(n) (den matematiska beteckningen för summan av delarna till n). Vi bestämmer sedan s(n) = σ(n) n Detta tal bildar sedan n i nästa varv i iterationen. Iterationen avbryts när vi kommer tillbaka till det inledande talet n. Talen som ingår i denna slinga kallas sociala tal. Ett exempel: Vi startar med n = 12496 och får 12496 14288 15472 14536 14264 12496 Efter 5 varv är vi tillbaka. Perioden är därför 5 social[n_]:=block[{i=0,m=n,ok=true}, While[ok, m=apply[plus,divisors[m]]-m; i=i+1; ok=m!=n; ]; i ] Håkan Strömberg 97 KTH STH
4.4. FUNKTIONER Det finns inte så många kända sociala tal. Här några exempel Period Antal kända Talen 4 138 1264460, 2115324, 2784580, 4938136,... 5 1 12496 6 3 21548919483, 90632826380, 1771417411016 8 2 1095447416, 1276254780 9 1 805984760 28 1 14316 En sak till Om man vill ta reda på om variabelnaär ett heltal skriver man i Mathematica IntegerQ[a]. Till exempel: If[IntegerQ[Sqrt(x)],... Om villkoret ovan är sant är x en heltalskvadrat. Teoriuppgifter Problem 52 Vilken av funktionerna i figur 4.32, f eller g, är injektiv? Figur 4.32: Problem 53 Varför är inte f(x) = x 2 en surjektiv funktion då X = {1,2,3,4,5} och Y = {1,4,9,16,25,36}? Problem 54 Är funktionen f(x) = x 2 injektiv och/eller surjektiv då X = { 1,0,1,2} och Y = {0,1,4}? Problem 55 Vad är detta för typ av funktion? Vi skriver f(x) = 2x och X = {1,2,3,4,5} och Y = {2,4,6,8,10} Håkan Strömberg 98 KTH STH
Problem 56 Vi repeterar först följande beteckningar x Det största heltal n så att n x x Det minsta heltal n så att n x Vilken värdemängd har funktionen med definitionsmängden R f(x) = x x Problem 57 I figur 4.33 presenterar vi sex avbildningar. Bestäm för var och en av dem om det är ett exempel på injektiv funktion, surjektiv funktion, bijektiv funktion, funktion utan att vara varken surjektiv eller bijektiv, eller till sist inte ens en funktion Figur 4.33: Problem 58 Funktionen f(x) = 4x mod 6 har definitionsmängden X = {0, 1, 2, 3, 4, 5} och värdemängden Y = X. Bestäm om funktionen är injektiv och/eller surjektiv. Problem 59 I figur 4.34 ser vi ett släktträd, där varje nivå utgör en generation. Relationen dotter till får följande utseende R = {(g,c),(h,d),(j,e),(k,f),(m,h),(p,k),(s,m)} om vi betecknar personen med första bokstaven i namnet. Bestäm följande relationer Håkan Strömberg 99 KTH STH
4.4. FUNKTIONER Figur 4.34: a) Mor till b) Bror till c) Kusin till Problem 60 Avgör för de fyra relationerna i problem 4.4.10, om de är reflexiva, symmetriska, antisymmeriska och/eller transitiva Problem 61 Uttryck i matematiskt språk delar-relationen över de naturliga talen, 2 R 12 tillhör denna relation eftersom 2 12. Problem 62 Vad kan man säga om följande relation? R = {(1,1),(1,3),(1,5),(2,2),(2,4),(3,1),(3,3),(3,5),(4,2),(4,4),(5,1),(5,3),(5,5)} Problem 63 Är antisymmetrisk samma sak som inte symmetrisk Problem 64 Vilka av dessa två relationer är transitiva R 1 = {(a,a),(a,b),(a,c),(a,e),(b,a),(b,b),(b,c),(b,e),(d,c),(d,d)} R 2 = {(a,b),(a,c),(a,e),(b,a),(b,b),(b,c),(b,e),(d,c),(d,d),(e,e)} Håkan Strömberg 100 KTH STH
Problem 65 Låt R 1 X Y och R 2 Y Z. Sammansättningen av dessa relationer, som vi betecknar R 2 R 1 är en relation från X till Z och som vi definierar Bestäm R 2 R 1 då R 2 R 1 = {(x,z) : (x,y) R 1 (y,z) R 2 för något y Y} R 1 = {(1,2),(1,6),(2,4),(3,4),(3,6),(3,8)} och R 2 = {(2,u),(4,s),(4,t),(6,t),(8,u)} Lösningar Teoriuppgifter Lösning Teoriuppgift 52 Funktionen g är injektiv. Den är även surjektiv och därmed också bijektiv. Lösning Teoriuppgift 53 Det finns inget x X, så att f(x) = 36. Funktionen är dock injektiv. Lösning Teoriuppgift 54 Funktionen är inte injektiv eftersom f( 1) = 1 och f(1) = 1. Däremot är funktionen f surjektiv, eftersom elementen i Y alla är bilder till element i X. Funktionen är följaktligen då inte bijektiv. Lösning Teoriuppgift 55 Den är både injektiv och surjektiv och därmed också bijektiv. Lösning Teoriuppgift 56 Då x Z är f(x) = 0. För övriga x är f(x) = 1 Lösning Teoriuppgift 57 a) Ingen funktion b) Ingen funktion c) Surjektiv d) Bijektiv e) Surjektiv f) Funktion Håkan Strömberg 101 KTH STH
4.4. FUNKTIONER Lösning Teoriuppgift 58 f(x) är varken surjektiv eller injektiv. x f(x) 0 0 1 4 2 2 3 0 4 4 5 2 Lösning Teoriuppgift 59 a) R 1 = {(a,b),(a,c),(h,l),(h,m),(j,n),(k,o),(k,p),(m,s)} b) R 2 = {(b,c),(c,b),(d,e),(e,d),(f,g),(i,h),(l,m),(o,p)} c) R 3 = {(d,f),(f,d),(d,g),(g,d),(h,j),(j,h),(i,j),(j,i),(r,s),(s,r)} Lösning Teoriuppgift 60 Ingen av relationerna är reflexiv eftersom ingen kan vara, son, mor, bror eller kusin till sig själv. Kusinrelationen är symmetrisk. Bror till-relationen är inte symmetrisk eftersom, relationen inte är symmetrisk då en bror och en syster är inblandade. Dotter till-relationen och mor till-relationen är båda antisymmetriska, däremot inte kusin-relationen och bror-relationen Ingen av relationerna är transitiv Lösning Teoriuppgift 61 R = {(a,b) : a,b N a b} Lösning Teoriuppgift 62 Den är både reflexiv, symmetrisk och transitiv Lösning Teoriuppgift 63 R = {(a,b),(b,a),(b,c)}. R är inte symmetrisk eftersom (c,b) R. R är inte antisymmetrisk eftersom både (a,b) R och (b,a) R Håkan Strömberg 102 KTH STH
Lösning Teoriuppgift 64 R 2 R 1 = {(1,u),(1,t),(2,s),(2,t),(3,s),(3,t),(3,u)} Lösning Teoriuppgift 65 R 1 är transitiv, men inte R 2 ty (a,b) och (b,a) tillhör R 2, men inte (a,a) Laboration Laborationsuppgift 25. Summan delar produkten (2) När är summan av talen 1+2+3+...+n inte en delare till produkten av samma tal 1 2 3... n Producera med hjälp av Mathematica en lista för olika n. Försök sedan hitta ett mönster i denna lista. Summan av talen 1+...+n skriver man i matematiken n k k=1 Produkten av talen 1... n skriver man i matematiken n! Dessa skrivsätt återkommer vi till framöver, men det skadar inte att du får se det redan nu. Med hjälp av detta kan vi skriva problemet: För vilka n är n k n! k=1 Laborationsuppgift 26. Ett tal som summan av två heltalskvadrater (2) Talet 5 är summan av två heltalskvadrater 1 2 + 2 2. På samma sätt är 13 = 2 2 + 3 2 och 260 = 16 2 + 2 2. Däremot kan varken 27,31 eller 443 och många andra tal, skrivas som summan av två heltalskvadrater. Skriv en funktion i Mathematica, som tar emot ett tal och som returnerar en lista innehållande små listor med två tal, en för varje lösning. Till exempel för talet 85 ska vi få listan {85,{2,9},{6,7}} eftersom 85 = 2 2 +9 2 = 6 2 +7 2 Håkan Strömberg 103 KTH STH
4.4. FUNKTIONER Laborationsuppgift 27. Summan av heltalskvadrater på två sätt (2) Använd rutinen ovan för att ta reda på det minsta tal som kan skrivas som summan av två heltalskvadrater på två olika sätt. Svaret är alltså inte 85. Laborationsuppgift 28. Tre tal efter varandra (2) Använd funktionen från föregående uppgift för att hitta de tre minsta konsekutiva (efter varandra följande, till exempel 78,79,80) heltal som alla kan skrivas som summan av två heltalskvadrater på åtminstone ett sätt. Ledtråd: De är < 1000. Laborationsuppgift 29. Oläsligt tal (2) I den gamla matematikboken fanns talet 273?49?5 Där siffrorna på frågetecknens plats var oläsliga. Däremot vet man att både 9 och 11 är delare till talet. Ta reda på de oläsliga siffrorna. Laborationsuppgift 30. Huvud, vingar och ben (1) Summan av antalet huvuden och vingar var lika med antalet ben hos hönsen och korna. Ta reda på det minsta antalet djur det kunde finnas i ladugården. Visa hur du kan lösa detta problem med Mathematica. Laborationsuppgift 31. Tal i olika baser (2) Ett tresiffrigt tal n i basen 7, kommer ut bak och fram då det skrivs i basen 9. Vilket är talet uttryckt i basen 10. Laborationsuppgift 32. Uttrycket (1) Vad är det som är anmärkningsvärt med uttrycket för godtyckliga x N? x 5 5 + x3 3 + 7x 15 Laborationsuppgift 33. AAABBBCCC + 1 (2) Siffrorna A {1...9} och B,C {0...9} bildar ett niosiffrigt tal. Om vi adderar 1 till detta tal får vi en heltalskvadrat. Vilket tal står AAABBBCCC för? Laborationsuppgift 34. Banken gjorde fel (2) När en check med ett fyrsiffrigt belopp, i hela kronor, skulle betalas ut av banken, lästes beloppet baklänges. Istället för beloppet abcd betalades det ut dcba. Checkens ägare förlorade då ett belopp som motsvarade en heltalskvadrat i kronor. Vilka är de möjliga beloppen? Håkan Strömberg 104 KTH STH
Dagens Teori 5.5 Logik Så här inleds förklaringen av ordet logik i vår Nationalencyklopedi: Logik vid bemärkelse grundläggande principer för en grupp företeelser eller lära om följdriktiga slutledningar inom något område, till exempel kapitalets logik, forskningens logik. Logik som vetenskaplig disciplin har som utgångspunkt studiet av allmängiltiga slutledningar och är i dag en omfattande vetenskap på gränsen mellan filosofi och matematik, vars kärna utgörs av en teori om deduktiv slutledning och andra därmed sammanhängande frågor som har att göra med satsers logiska form. För att markera sistnämnda aspekt omtalas logik i denna bemärkelse ibland som formell logik, men härmed avses alltså inte något annat än logik i vetenskaplig bemärkelse. Tänker man logiskt, tänker man rätt. Tänker man däremot ologiskt, tänker man fel. Logik är alltså läran om konsten att tänka rätt. Deduktiv slutledning kallas det, då man logiskt härleder satser ur allmänna lagar eller axiom och det är just det vi ska titta på här. Definition 19 Satser. För att starta en sådan tankeprocess behöver vi ett eller fler påståenden, som vi kallar satser. Dessa satser måste ha värdet sant eller falskt. Några exempel på satser: Den här texten skrevs 2008 (denna sats är sann) 7 > 3 (satsen är förstås också sann) Jorden är den enda planeten i universum på vilken det finns liv (måste antingen vara sant eller falskt. Även om vi inte vet vilket, är det likväl en sats) AIK är bäst! (om vi inte kan definiera något bestämt mått för hur detta ska avgöras, så är detta inte en sats.) Vår kung heter Karl XII (en falsk sats) Imorgon kommer det att snöa (en sats var värde vi får reda på imorgon) Skynda på! (är ingen sats eftersom meningen varken kan vara sann eller falsk) Håkan Strömberg 105 KTH STH
5.5. LOGIK Definition 20 Satsparametrar. På samma sätt som vi är vana att tilldela numeriska variabler värden som till exempel x=7, kommer vi här att låta små bokstäver, p, q, r och så vidare beteckna satser. Vi kommer att skriva: r: Solen skiner s: Det regnar Därefter kan vi gå vidare med satsparametrarna (variablerna) i vårt resonemang och slipper skriva ut hela satsen varje gång. Satskonnektiv. Först presenterar vi tre välkända satskonnektiv. Ett fint ord för det som vi i programmeringskursen kallade logiska operatorer. Sedan följer två mindre bekanta satskonnektiv. Definition 21 Konjunktion. Den första av dessa kallas konjunktion, som inte är något annat än and eller och. I C kan man ju skriva a>b && b<c. I så fall är a>b och b<c de två satserna och && vår beteckning för konjunktionen. Här ska vi dock använda beteckningen. Om uttrycket r s är sant betyder det att solen lyser samtidigt som det regnar solregn. Den här sanningstabellen känner vi redan till r s r s S S S S F F F S F F F F Det vill säga det är solregn endast då både solen lyser och det regnar. Definition 22 Disjunktion. Över till nästa satskonnektiv, nämligen till disjunktion, som vi också redan känner till. Vi är vana att kalla den operator för or eller eller och använder oss i programspråket C av beteckningen. Vi förstår nu vad som kallas satser och vad som är satskonnektiv i det logiska uttrycket från C, a>b b<c. Beteckningen vi ska använda i denna kurs är dock. Vad betyder det då om satsen r s är falsk. Med hjälp av sanningstabellen r s r s S S S S F S F S S F F F kommer vi fram till att det varken regnar eller är solsken, en vanlig gråmulen dag kanske. Håkan Strömberg 106 KTH STH
Definition 23 Negation. Den tredje av våra satskonnektiv heter i logikens språk negation. Vi förstår omedelbart att det handlar om operatorn vi kallar not eller icke och som vi betecknar! i C. Uttryck som!(a>b) förstår vi redan. Här ska vi använda beteckningen. Sanningstabellen är kort och koncis: r r S F F S Exempel 43 För att bli lite mer förtrogen med de nya beteckningarna definierar vi först några satser och skriver sedan några uttryck att tolka r: Det är vinter s: Det är sommar t: Det snöar u: Solen skiner När är följande uttryck sanna? a) s u b) r t c) s r d) s r e) r t f) u r t a) Det är sommar och sol b) Det är vinter men det snöar inte c) Det är sommar eller vinter d) Alltid falskt eftersom det inte kan vara både sommar och vinter samtidigt e) Det är inte vinter, men det snöar ändå f) Solen skiner fast det snöar och är vinter Så här långt har vi beträtt endast kända marker. Nu över till några nyheter. Håkan Strömberg 107 KTH STH
5.5. LOGIK Definition 24 Implikation. Först implikation, om så. Vi börjar med ett exempel: r: Idag är det söndag s: Imorgon är det måndag Om det är söndag idag, är det måndag i morgon skriver vi r s. Inget annat än en villkorssats kan man tycka. Över till tillhörande sanningstabell Och nu blev det svårt! r s r s S S S S F F F S S F F S Om det är söndag idag, så är det måndag i morgon. Uttrycket r s är sant. Känns OK. Om det är söndag idag, så är det inte måndag i morgon. Uttrycket r s är falskt. Känns också OK. Om det inte är söndag idag, så är det måndag imorgon. Uttrycket r s är sant! Känns inte OK. Om det inte är söndag idag, så är det inte måndag i morgon. Uttrycket r s är sant. Känns OK. Hur ska vi då lyckas förklara den tredje raden i tabellen? Vi tar ett exempel: Exempel 44 Läraren säger till Anna, att om hon klarar tentamen i diskret matematik så kommer hon att vara klar med sin ingenjörsexamen. Vi har två satser: r: Anna klarar tentamen t: Anna godkänns i ingenjörsexemen Om hon klarar tentan så blir det som läraren sagt hon blir godkänd i ingenjörsexamen. Om r är sann och t är sann ger det att r t blir sann, allt enligt tabellen. Om r är sann och t är falsk, så ger det att r t blir falsk. Detta är alltså omöjligt om läraren ska hålla sitt löfte. Men om hon däremot inte klarar tentan, vad är det då som gäller? Läraren har egentligen inte sagt något om det, eller hur! Anna kan heller inte ha några synpunkter på det beslut som kommer att fattas. Så därför måste både r =falsk och t =falsk samt r =falsk och t =sann betyda att r t är sann för båda dessa fall. Håkan Strömberg 108 KTH STH
Om det inte är söndag idag så säger det inget om vilken dag det är imorgon. Att det inte kan vara måndag imorgon beror egentligen på andra saker och vi kan konstatera att detta kan ses som ett dåligt exempel (som valts för att göra dig uppmärksam på svårigheten med implikation. Definition 25 Exklusiv konjunktion Även kallad xor. Många gånger när vi i språket använder eller så är det just exklusiv konjunktion vi menar, då inte både r och s kan vara sanna samtidigt. Inom logiken används beteckningen. r s r s S S F S F S F S S F F F Definition 26 Ekvivalens. Den sista av våra satskonnektiv heter ekvivalens och betecknas med och sanningstabellen får följande utseende: r s r s S S S S F F F S F F F S Helt enkelt r s sant om r och s har samma sanningsvärde. Nu har vi presenterat alla de byggstenar och dess funktioner vi behöver för att genomföra de logiska resonemang vi vill göra här. Här en sammanfattning: Satskonnektiv: Parenteser: () Satsparametrar: p,q,r,s... Parenteserna används för att klargöra ordningen i vilken uttrycket ska evalueras. Vi räknar inte med någon speciell prioritetsordning för satskonnektiven utom möjligen för. Utifrån dessa definitioner kan vi nu göra följande praktiska observationer Antingen p eller p är sanna Om ett antagande leder till att både p och p samtidigt är sanna eller falska, har antagandet lett fram till en motsägelse, som i sin tur betyder att antagandet är felaktigt Om p q är sant måste både p och q vara sanna Om p q är falskt, så måste p eller q eller båda vara falska Om p q är falskt, så måste både p och q vara falska. Håkan Strömberg 109 KTH STH
5.5. LOGIK Om p q är sant, så måste p eller q vara sanna. Det är dessutom möjligt att båda är sanna Om p q är sant och dessutom p, så kan vi därför inte säga något om q Om p q och p båda är sanna, måste q vara sann. Om p q och q båda är sanna, så kan vi inte säga något om p. Om p q är sant och q är falskt måste även p vara falskt Om p q är sant är antingen p falskt eller q sant eller båda har samma värde. Om p q är falskt måste p vara sant och q falskt. Om p q är sant har p och q samma värde. Exempel 45 Uttryck följande satser med hjälp av givna satsparametrar: I Adam spelar antingen tennis eller är på jobbet. II Om Bertil vinner på tipset kommer han att köpa en ny bil III Det regnar endast om det är nordlig vind IV Idag är det fredag och Curt vill inte gå på föreläsningen V Om David inte pluggar hårt kommer han inte att klara tentan Svar: a) Adam arbetar b) Adam spelar tennis c) Bertil vinner på tipset d) Bertil köper ny bil e) Det regnar f) Det är nordlig vind g) Idag är det fredag h) Curt går på föreläsningen i) David pluggar hårt j) David klarar tentan I a b II c d III e f IV g ( h) V ( i) ( j) Exempel 46 Tre studenter, Adam, Bertil och Curt rapporterade sanningsenligt resultatet på sina senaste tentor för sina vänner: Adam: Om jag klarade matematiktentan, så gjorde Bertil det också. Jag klarade programmeringstentan om och endast om Curt gjorde det. Bertil: Om jag klarade matematiktentan, så gjorde Adam det också. Adam klarade inte elektroniktentan. Curt: Varken jag eller Adam klarade elektroniktentan. Om inte Bertil klarade programmeringstentan, så gjorde inte Adam det heller. Om var och en klarade åtminstone en tentamen, varje tentamen klarades av åtminstone en av de tre och Curt inte klarade lika många tentor som någon av de andra två, vilka tentor klarade då de tre? Håkan Strömberg 110 KTH STH
Lösning: Lite omständligt, men vi skriver ner de satserna i en lista: a: Om Adam klarade matematiktentan så gjorde Bertil det också b: Adam klarade programmeringstentan om och endast om Curt gjorde det c: Om Bertil klarade matematiktentan så gjorde Adam det också d: Adam klarade inte elektroniktentan. e: Varken Curt eller Adam klarade elektroniktentan f: Om inte Bertil klarade programmeringstentan, så gjorde inte Adam det heller. g: De klarade minst en tenta var h: Varje tenta klarades av minst en av studenterna i: Curt klarade inte samma antal tentor som någon av de andra två 1 Adam Bertil Curt Matematik G G Programmering Elektronik 2 Adam Bertil Curt Matematik U U Programmering Elektronik a och c har båda med matematik att göra. Då p q = S och p = S måste q = S. Samtidigt då p q = S och q = F, så måste p = F. Detta betyder att antingen klarade både Adam och Bertil mattetentan eller så körde de båda två. Vi får två fall. 3 Adam Bertil Curt Matematik G G Programmering G G Elektronik 5 Adam Bertil Curt Matematik U U Programmering G G Elektronik 4 Adam Bertil Curt Matematik G G Programmering U U Elektronik 6 Adam Bertil Curt Matematik U U Programmering U U Elektronik b och f handlar båda om programmeringstentan. Om p q = S sant måste p = q. Vi får två möjligheter. Antingen klarade både Adam och Curt tentan eller så gjorde ingen det. Två nya fall som leder till totalt fyra (se ovan). 7 Adam Bertil Curt Matematik G G Programmering G G G Elektronik 9 Adam Bertil Curt Matematik U U Programmering G G G Elektronik G 8 Adam Bertil Curt Matematik G G Programmering U G U Elektronik 10 Adam Bertil Curt Matematik U U Programmering U G U Elektronik Från f får vi, att då p q = S så måste p = F eller både p = S och q = S. Vi får då antingen: Bertil klarade programmeringstentan. Vi vet då inget om Adams programmeringstenta. eller Ingen av dem klarade den tentan. Försöker vi kombinera detta med de Håkan Strömberg 111 KTH STH
5.5. LOGIK fyra tabellerna ovan ser vi att Bertil och Adam klarade tentan, bara kan kombineras med tabellerna 3 och 5. Genom h, alla tentor klarades av någon, får vi sedan tabellerna ovan. 11 Adam Bertil Curt Matematik G G Programmering G G G Elektronik U G U 13 Adam Bertil Curt Matematik U U Programmering G G G Elektronik U G U 12 Adam Bertil Curt Matematik G G Programmering U G U Elektronik U G U 14 Adam Bertil Curt Matematik U U Programmering U G U Elektronik U U U Nu över till elektrotekniktentan. Adam klarade inte den. Fyller vi i det, ser vi att tabell 14 utgår eftersom alla klarade någon tenta. Curt klarade inte heller elektroniktentan. Då måste Bertil ha klarat tentan. 15 Adam Bertil Curt Matematik G G U Programmering G G G Elektronik U G U 17 Adam Bertil Curt Matematik U U G Programmering G G G Elektronik U G U 16 Adam Bertil Curt Matematik G G G Programmering U G U Elektronik U G U Tillämpar vi nu g och h, kan vi fylla i ännu mer. Till sist förstår vi genom i, att Curt inte kan ha klarat matematiken. Lösningen finns nu i tabell 15. Håkan Strömberg 112 KTH STH
Exempel 47 Passar Adam som chef? Följande premisser är sanna: P 1 : Adam är handlingskraftig eller kreativ P 2 : Om han är handlingskraftig kommer han att bli en bra chef P 3 : Adam är inte både effektiv och kreativ P 4 : Om han inte är effektiv så är han antingen handlingskraftig eller kommer att bli en bra chef Vi påstår nu slutsatsen: Adam kommer att bli en bra chef. Lösning: Med hjälp av de ingående satserna: h: Adam är handlingskraftig c: Adam kommer att bli en bra chef e: Adam är effektiv k: Adam är kreativ kan vi nu skriva ner premisserna och slutsatsen på följande form: P 1 : h k P 2 : h c P 3 : (e k) P 4 : ( e) (h c) C : c Vi studerar två fall: Fall 1 Adam är handlingskraftig Fall 2 Adam är inte handlingskraftig Antag att Fall 1 är sant. Från den andra premissen P 2 får vi då direkt att Adam kommer att bli en bra chef. Om, som i Fall 2, Adam inte är handlingskraftig, så får vi från premiss P 1 att han måste vara kreativ. Eftersom han inte kan vara både effektiv och kreativ (från P 3 ) kan han då inte vara effektiv. Från P 4 får vi nu att han eftersom han inte är effektiv, så måste han vara antingen handlingskraftig eller bli en bra chef. Eftersom vi antagit att han inte är handlingskraftig så måste han bli en bra chef. Slutsatsen är sann i både Fall 1 och Fall 2 och vi vet nu att Adam kommer att bli en bra chef. Håkan Strömberg 113 KTH STH
5.5. LOGIK Exempel 48 En skeppsbruten sjöman, som vi kallar Ture, flöt en dag iland på en söderhavsö för cirka 100 år sedan. På den ön fanns två stammar, en vars medlemmar alltid talade sanning. Vi kallar stammen S. Medlemmarna i den andra stammen talade aldrig sanning. Den stammen kallar vi L. När Ture vaknade upp på stranden fann han två personer vid sin sida. Var är jag?, frågade han Du är på Taborti, sa den förste Ön heter Hasvaji, sa den andre Jag är Gösta och han heter Gustav, fortsatte den förste Nej, jag är Gösta och han heter Gustav, sa den andre Just då kom en tredje person förbi. För att få klarhet i frågan pekade Ture på de två männen och frågade den tredje: Vem av dem ska jag tro på? Han och jag tillhör samma stam, svarade den tredje och pekade på den förste. Det är sant, sa den andre, de tillhör samma stam. Vem talade sanning, vem ljög och vad hette ön han kommit till? Lösning 1: Antag att den tredje talar sanning: Det betyder att även den förste talar sanning och att den andre ljuger. Men när han till sist säger Det är sant, betyder det alltså att han också talar sanning därmed skulle skulle alla tre tala sanning. Detta är en motsägelse som vi får för de två inledande påståendena. Antag därför att den tredje ljuger: Det betyder att den förste inte tillhör L utan talar sanning! Den andre ljuger ju också då han säger Det är sant. Ture har alltså kommit till Taborti, en liten ö nära Tahiti. Vår förste vän hette Gösta och den andre Gustav. Vad den tredje heter förtäljer inte historien. Lösning 2: Nöjda blir vi inte förrän vi använt vår nyvunna kunskap, för att uttrycka och lösa problem av detta slag. Vi kan identifiera följande satser: a: Ön heter Taborti b: Ön heter Hasvaji c: Den förste heter Gösta d: Den andre heter Gösta e: De förste hör till S f: Den andre hör till S g: Den tredje hör till S Vi kan nu skriva en mängd uttryck. Tolka dessa: I) e a II) f b III) e c IV) f d V) e ( d) VI) g e VII) ( g) e VIII) f ( e g) (e g) IX) ( f) ( e g) (e g) X) (e f) ( (e f)) XI) (c d) ( (c d)) Kanske inser man att uttrycken I till V inte direkt har med problemet att göra, utan då vi tagit reda på vem som hör till vilken stam, kan vi använda dessa, för att besvara problemets Håkan Strömberg 114 KTH STH
frågor. Om vi först koncentrerar oss på g e och ( g) e, så förstår vi att e måste vara sann. Om den tredje talar sanning så tillhör också den förste S. Om den tredje ljuger, så tillhör inte den förste och den tredje samma stam! Nu kan vi besvara alla frågorna. Detta utan att ta hänsyn till vad den andre säger. En förutsättning är ju att den förste och andre inte kommer från samma stam. Vi kommer att möta Ture igen längre fram. Exempel 49 Förhör av fyra misstänkta Fyra män, Adam, Bertil, Curt och David sitter i förhör, alla misstänkta för en cykelstöld. Följande spontana kommentarer kommer från de misstänkta: Adam : Bertil snodde cykeln Bertil : David snodde cykeln Curt : Det var inte jag David: Bertil ljuger Nu råkar förhörsledaren veta att endast en av de tilltalade talar sanning. Vem lade otillåtet beslag på cykeln? Lösning 1:Ett sätt är att gå igenom alla tänkbara fall. Hur många finns det? Fyra förstås. Vi antar i tur och ordning att Adam, Bertil, Curt och David talar sanning och ser om detta leder till motsägelse. Adam talar sanning. I så fall måste det vara Bertil som begått stölden. Bertil ljuger vilket är rimligt. Men hur är det med Curt? Han ska ju enligt reglerna ljuga, alltså är även han skyldig. Detta är en motsägelse, som gör att vårt antagande faller. Bertil talar sanning. Det skulle betyda att David har stulit cykeln. Adam ljuger, vilket stämmer. Men av samma skäl som ovan skulle det betyda att även Curt är den skyldige. En motsägelse igen och vi överger detta antagande. Curt talar sanning. Vi vet inte mer efter detta uttalande än att Curt är oskyldig. Det David säger innebär att Bertil talar sanning. Men vi vet ju att Bertil ljuger, så även detta fall är en motsägelse. David talar sanning. Eftersom Bertil ljuger är inte David den skyldige. Eftersom Adam ljuger går även Bertil fri. Curt ljuger när han säger att det inte var han. Äntligen har vi nått målet. Curt har stulit cykeln. Lösning 2: Våra satser blir a: Adam talar sanning (F) b: Bertil talar sanning (F) c: Curt talar sanning (F) d: David talar sanning (S) e: Adam utförde dådet (F) f: Bertil utförde dådet (F) g: Curt utförde dådet (S) h: David utförde dådet (F) Håkan Strömberg 115 KTH STH
5.5. LOGIK Nu kan vi ställa upp följande uttryck utifrån vad de misstänkta sa: I) a f II) b h III) c ( g) IV) d ( b) Vi vet nu att endast en talar sanning och att endast en har utfört dådet. Det betyder att endast en av variablerna a,b,c,d ska vara S och endast en av variablerna e,f,g,h ska vara sann. Samtidigt ska alla uttrycken I), II), III) och IV) vara sanna. Vi får följande sanningstabell: a b c d e f g h a f b h c g d b S F F F S F F F F S F F F S F F S F F F S F F S F F S F S F F F S S S F F F F S S F F F S S F S S F F F F S F F S S F F F S F F F S F F F F F S F F S F F S F F F S S F F F F S F S F F F S F S S F F F F F S F F S S F F S F F F F S F S F S S F F S F F F S F S S F F F F F S F F S F S S S S S F F F F F F S F F F F F S F F F F F S S S F S F F S F F F F S S F S F F F F S F F F S S F F S där vi ser att den 12:e raden uppfyller våra villkor. Ur den kan vi läsa att David talar sanning och att Curt utförde dådet. Håkan Strömberg 116 KTH STH
Problemet kan till exempel lösas med detta C-program 1 #include <stdio.h> 2 #define AND(a,b) a&&b 3 #define OR(a,b) a!!b 4 #define NOT(a)!a 5 #define IMP(a,b)!a b 6 #define IFF(a,b) (a&&b) (!a&&!b) 7 #define XOR(a,b) a+b==1 8 9 void add(int v[]){ 10 int i=0; 11 v[i]++; 12 while (v[i]==2){ 13 v[i+1]++; 14 v[i++]=0; 15 } 16 } 17 18 int main(void){ 19 int v[30]={0},u[30],n=8,i; 20 while (v[n]==0){ 21 u[0]=iff(v[0],v[5]); 22 u[1]=iff(v[1],v[7]); 23 u[2]=iff(v[2],not(v[6])); 24 u[3]=iff(v[3],not(v[1])); 25 u[4]=u[0]+u[1]+u[2]+u[3]; 26 u[5]=v[0]+v[1]+v[2]+v[3]; 27 u[6]=v[4]+v[5]+v[6]+v[7]; 28 if (u[4]==4 && u[5]==1 && u[6]==1){ 29 printf("["); 30 for (i=0;i<n;i++) printf("%d ",v[i]); 31 printf("]\n"); 32 } 33 add(v); 34 } 35 } 2-7 Med hjälp av define definierar vi de sex konnektiven 9-16 Programmet ska generera alla tänkbara uppsättningar av variabelvärden. Innehållet i v är antingen 1 (sant) eller 0 (falskt). Varje gång denna funktion anropas adderas 1 till v[0]. Om resultatet då blir 2 sätts v[0] = 0 och vi ökar på v[1]. Om denna ökning innebär att resultatet blir 2 sätts v[1]=0 och v[2] ökas och så vidare.... På detta sätt genomlöps alla kombinationer av 1:or och 0:or 20-34 while-loopen tar hand om en kombination i v och beräknar de fyra uttrycken. Dessutom kollar vi upp övriga villkor som gäller för just detta problem. Håkan Strömberg 117 KTH STH
5.5. LOGIK Mathematica Logik I Mathematica får man tillgång till de logiska operatorerna Mathematica Alternativt Matematiken And[] && Or[] Not[]! Equivalent[] Implies[] Xor[] Logiska variabler kan anta värdena True och False. a=true; b=false; a && b False; Test av logiskt uttryck i Mathematica. Vi ska testa för vilka värden på p,q och r som uttrycket p ( q r) är sant. f1 = p && (Implies[!q,r]); BooleanTable[{p, q, r} -> f1, {p, q, r}] Vi får resultatet {True, True, True} -> True, {True, True, False} -> True, {True, False, True} -> True, {True, False, False} -> False, {False, True, True} -> False, {False, True, False} -> False, {False, False, True} -> False, {False, False, False} -> False} Uttrycket är alltså sant då (p = T,q = T,r = T), (p = T,q = T,r = F), (p = T,q = F,r = T). Håkan Strömberg 118 KTH STH
SatisfiableQ Genom SatisfiableQ[] kan man ta reda på om ett logiskt uttryck kan blir sant över huvud taget SatisfiableQ[f1] SatisfiabilityCount[f1] 3 SatisfiabilityInstances[f1, {p, q, r}] {{True, True, False}} I den andra satsen ser vi hur man kan ta reda på, för hur många uppsättningar av variablerna, uttrycket blir sant. Ibland kan det räcka med att få en uppsättning variabelvärden, som leder till att uttrycket blir sant. Tautologi. Man kan testa om ett uttryck alltid är sant, om det är en så kallad tautologi, genom funktionen. TautologyQ[a && b! a! b] True TautologyQ[f1] False Det första uttrycket är alltid sant och därmed en tautologi, vilket det andra som bekan inte är. BooleanMinimize En intressant funktion i Mathematica är BooleanMinimize som kan användas för att förenkla logiska uttryck BooleanMinimize[!(!((p q) && r)!q)] q && r Exempel 50 Problem: Vi utgår från mängden C = {1,2,3,4,5,6,7,8} som vi vill dela upp i två mindre mängder A och B, sådana att A = B = 4 och A B = C. Dessutom, om till exempel A = {a,b,c,d}, ska a+b,a+c,a+d,b+c,b+d,c+d ge 6 olika summor, som ska vara samma som de summor man, på samma sätt, kan bilda från B. Lösning: Vi startar med att konstruera en funktion f(a) som tar emot en mängd och returnerar en annan med samtliga summor hos paren, som kan bildas. f[a_] := Block[{b = {}, i, j}, For[i = 1, i < Length[a], i++, For[j = i + 1, j <= Length[a], j++, AppendTo[b, a[[i]] + a[[j]]]; ] ]; Union[b] ] Håkan Strömberg 119 KTH STH
5.5. LOGIK f[{1, 2, 3, 4}] {3, 4, 5, 6, 7} a är mängden av tal vi ska bilda summorna av I b ska vi till slut ha mängden av olika bildade summor i går igenom alla index utom för sista elementet j går igenom alla index med början från i+1 b utökas med en summa för varje varv i inre loopen Summorna man får i exemplet är [3,4,5,5,6,7]. Med hjälp av Union får vi så motsvarande mängd {3,4,5,6,7}. Med hjälp av funktionen KSubsets som tillhör biblioteket Combinatorica kan man plocka ut alla dellistor eller delmängder med en viss storlek. << Combinatorica KSubsets[{1, 2, 3, 4},2] {{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}} I exemplet ovan utgår vi från listan 1,2,3,4 och bestämmer att vi vill ha alla, två element långa dellistor. Man inkluderar biblioteket, endast en gång under en session. Observera accenten! Här kommer nu huvudprogrammet som med hjälp av funktionen f löser vårt problem. g[] := Block[{a, b, c, b1, c1, i, svar = {}}, a = KSubsets[Range[8], 4]; For[i = 1, i <= Length[a], i++, b = a[[i]]; c = Complement[Range[8], b]; b1 = f[b]; c1 = f[c]; If[Length[b1] == 6 && b1 == c1, AppendTo[svar, {b, c}] ] ]; svar ] g[] {{{1,4,6,7}, {2,3,5,8}}, {{2,3,5,8}, {1,4,6,7}}} Från vår grundmängd U = {1,2,3,4,5,6,7,8} plockar vi ut alla delmängder med kardinaltalet 4. a blir då en mängd av alla dessa delmängder. Vi låter så b i tur och ordning anta alla dessa delmängder. Vi kan nu bilda komplementet till c = U b. Håkan Strömberg 120 KTH STH
I b1 får vi nu alla summor som kan bildas ur b och i c1 alla summor ur c. Om a = b = 6 och b1 = c1 har vi funnit en lösning som vi skriver ut. Det finns bara en lösning som visas ovan. Exempel 51 Problem: Talet 373 kallas för ett absolut primtal därför att alla permutationer av siffrorna i detta tal 337, 733 också är primtal. Ta reda på alla tresiffriga absoluta primtal. Med hjälp av funktionen Permutations kan Mathematica generera alla permutationer av elementen i en lista eller mängd. Permutations[{3, 3, 7}] {{3, 3, 7}, {3, 7, 3}, {7, 3, 3}} Permutations[{1, 2, 3}] {{1, 2, 3}, {1, 3, 2}, {2, 1, 3}, {2, 3, 1}, {3, 1, 2}, {3, 2, 1}} För första listan finns de tre olika sätt att ordna siffrorna. För den andra finns 6 möjligheter. Vi ska tala mer om permutationer i nästa föreläsning. Vi har tidigare skapat funktionen IntegerDigits[n] som tar emot ett tal n och returnerar en lista med siffrorna som element. Vi har också tidigare skapat funktionen FromDigits[L] som tar emot en lista av siffror och returnerar motsvarande heltal. Dessa två funktioner behöver vi här. f[tal_] := Block[{b, n, i}, b = Permutations[IntegerDigits[tal]]; n = 0; For[i = 1, i <= Length[b], i++, tal2 = b[[i]]; If[PrimeQ[FromDigits[tal2]], n = n + 1; ] ]; n == Length[b] ] Select[Range[100,999],f] {113, 131, 199, 311, 337, 373, 733, 919, 991} Denna funktion tar emot ett tal och returnerar True om talet är ett absolut primtal. Först skapar vi en sifferlista av talet, som vi låter Permutations bilda alla permutationer av. För varje sådan permutation bildar vi ett tal med FromDigits som vi direkt testar om det är ett primtal. Om så är fallet ökar vi en räknare n. Om till slut n s värde lika med antalet underlistor i b har vi funnit ett absolut primtal. Av resultatet ser vi att det egentligen bara finns de tre grupper av siffror 113,199,337. Håkan Strömberg 121 KTH STH
5.5. LOGIK Exempel 52 Problem: Vi vill med hjälp av de 9 siffrorna 1...9 bilda tre stycken tresiffriga heltal sådana att produkten av dessa blir så stor som möjligt. Varje siffra får endast användas en gång. h[] := Block[{A, p, m = 0, svar = {}, a}, A = Permutations[Range[9]]; For[i = 1, i <= Length[A], i++, a = A[[i]]; p = FromDigits[Take[a, {1, 3}]]* FromDigits[Take[a, {4, 6}]]* FromDigits[Take[a, {7, 9}]]; If[p > m, m = p; svar = {p, a}; ] ]; svar ] h[] {611721516, {7, 6, 3, 8, 5, 2, 9, 4, 1}} Produkten 763 852 941 = 611721516 är maximal. Teoriuppgifter Problem 66 För att ta reda när ett villkor är sant respektive falskt kan det vara en bra idé att konstruera en sanningstabell. Vi utgår från uttrycket q ( r p) och ska ta reda på för vilka värden på p,q och r uttrycket är sant p q r r r p q ( r p) 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 Tabellen får 2 3 = 8 rader därför att det finns 3 variabler som var och en kan anta 2 värden. Vi bygger sedan successivt upp villkoret fram till målet. I kolumnen längst till höger kan vi avläsa för vilken uppsättning av värden hos variablerna hela uttrycket är sant. Konstruera en liknande sanningstabell för p (q r) och (p q) r Håkan Strömberg 122 KTH STH
för att bestämma om de har samma sanningsvärden. Problem 67 Konnektivet nand förekommer och är sant endast då ingen av p och q är sann, (p q). Man skriver p q. Upprätta en sanningstabell över nand. Vi har nu studerat sex tvåställiga konnektiv,,,,,,. Hur många konnektiv finns det och hur många av dem är meningslösa? Problem 68 Använd BooleanTable i Mathematica för att skapa en sanningstabell för uttrycket ((p q) (q r)) (p r) Kan man med hjälp av resultatet skriva ned ett enklare uttryck? Problem 69 Är tautologi? (p (p r)) ((p q) (p r) Problem 70 Vad skriver programmet ut? 1 int n=7; 2 if(n>5) n=n+2; 3 if(n+2==8 n 3==6) n=2 n+1; 4 if(n 3==16 && n/6==1) n=n+3; 5 if(n!=21 && n 5==15) n=n 4; 6 if(n/5==2 n+1==20) n++; 7 printf("%d\n",n); Problem 71 Visa med sannigstabeller att följande lagar gäller p (q r) (p q) (p r) Distributiva lagen p (q r) (p q) (p r) p (p q) p Absorptionslagen p (p q) p (p q) p q DeMorgans lag (p q) p q Håkan Strömberg 123 KTH STH
5.5. LOGIK Problem 72 Övertyga dig på något sätt om att (p q) ( p q) Detta betyder att man kan ersätta alla a b med ( a b) Problem 73 Med hjälp av de lagar vi nämnt i uppgifter ovan kan ofta logiska uttryck förenklas, men med hjälp av BooleanMinimize blir det ännu enklare att förenkla! Förenkla uttrycket ( ((p q) r) q) Problem 74 När den förste astronauten som besökt Mars återvände till jorden bad man honom att beskriva marsianerna. Fortfarande utmattad efter resan svarade han något förvirrande men dock korrekt: Det är inte sant att om marsianerna är gröna, så har de tre huvuden eller så kan de inte flyga, såvida det inte är sant att de är gröna om och endast om de kan flyga och att de inte har tre huvuden Antag att alla marsianer ser likadana ut och att de har minst en av de tre egenskaperna. Har marsianerna tre huvuden? Är de gröna? Kan de flyga? Problem 75 Adam ljuger på måndag, tisdag och onsdag och talar sanning de andra dagarna i veckan. Bertil å andra sidan ljuger på torsdag, fredag och lördag och talar sanning de andra dagarna. Följande dialog utspann sig: Igår ljög jag, sa Adam Igår ljög jag också, sa Bertil Vilken dag är det idag? Problem 76 Adam ljuger på måndag, tisdag och onsdag och talar sanning de andra dagarna i veckan. Jag ljög igår, sa Adam Jag kommer att ljuga igen två dagar efter imorgon, fortsatte Adam. Vilken dag är det idag? Håkan Strömberg 124 KTH STH
Problem 77 Adam ljuger på måndag, tisdag och onsdag och talar sanning de andra dagarna i veckan. Vilka dagar i veckan är det möjligt för Adam att göra följande uttanden: Jag ljög igår Jag kommer att ljuga igen imorgon Problem 78 Adam ljuger på måndag, tisdag och onsdag och talar sanning de andra dagarna i veckan. Vilken dag i veckan kan Adam säga: Jag ljög igår och jag kommer att ljuga imorgon. Problem 79 Curt och David är tvillingar, lika som bär. En av dem ljuger på måndag, tisdag och onsdag och talar sanning de andra dagarna i veckan. Den andre ljuger på torsdag, fredag och lördag och talar sanning de andra dagarna. Jag är Curt, säger den ene Jag är David, säger den andre Vem var Curt, den ene eller den andre och vem var David, den ene eller den andre? Problem 80 Curt och David är tvillingar, lika som bär. En av dem ljuger på måndag, tisdag och onsdag och talar sanning de andra dagarna i veckan. Den andre ljuger på torsdag, fredag och lördag och talar sanning de andra dagarna. Vi hör följande dialog, som inte utspanns på en söndag: Jag är Curt, säger den förste Om det är sant, så är jag David, säger den andre Vem är vem? Problem 81 Curt och David är tvillingar, lika som bär. En av dem ljuger på måndag, tisdag och onsdag och talar sanning de andra dagarna i veckan. Den andre ljuger på torsdag, fredag och lördag och talar sanning de andra dagarna. Adam möter de två bröderna och frågar en av dem: Ljuger du på söndag? Ja,svarade han Sedan ställde Adam samma fråga till den andre brodern. Vilket svar fick han? Håkan Strömberg 125 KTH STH
5.5. LOGIK Problem 82 Curt och David är tvillingar, lika som bär. En av dem ljuger på måndag, tisdag och onsdag och talar sanning de andra dagarna i veckan. Den andre ljuger på torsdag, fredag och lördag och talar sanning de andra dagarna. De två bröderna gör vid ett tillfälle följande uttalanden: Den förste: (1) Jag ljuger på lördag (2) Jag ljuger på söndag Den andre: Jag kommer att ljuga imorgon Vilken dag är det idag? Problem 83 Curt och David är tvillingar, lika som bär. En av dem ljuger på måndag, tisdag och onsdag och talar sanning de andra dagarna i veckan. Den andre ljuger på torsdag, fredag och lördag och talar sanning de andra dagarna. En dag träffar Adam en av bröderna som gör följande uttalande: Jag ljuger idag och jag heter Curt Vem sa det? Problem 84 Curt och David är tvillingar, lika som bär. En av dem ljuger på måndag, tisdag och onsdag och talar sanning de andra dagarna i veckan. Den andre ljuger på torsdag, fredag och lördag och talar sanning de andra dagarna. En dag träffar Adam en av bröderna som gör följande uttalande: Jag ljuger idag eller jag heter Curt Går det att avgöra vem som säger det? Håkan Strömberg 126 KTH STH
Problemlösning Problemlösning 32. Ture bygger en båt (2) Tures båt ska så småningom ta honom från ön. Det är ett hårt arbete och 5 män kommer därför till honom med mat och dryck. Som vanligt försöker han få reda på vilka stammar de tillhör. Tre av oss kommer från S, säger den förste Det är sant, säger den andre Nej endast två av oss kommer från S, säger den tredje. De första tre ljuger alla, säger den fjärde Ture kunde av detta inte fastställa vilka stammar de kom ifrån. men efter att ha hört den femtes påstående visste han svaret. Till vilka stammar hörde de fem männen?. Problemlösning 33. Sture kommer till Taborti (2) 100 år efter att Ture lämnat ön kom en av hans barnbarn, Sture till ön. Under tiden som gått sedan Tures tid, hade en tredje stam skapats. Denna stam ljög var annan gång och talade sanning var annan gång. Vi kallas stammen A. Vid Stures första möte med invånarna kom en lång, en kort och en man av medellängd fram till honom. Välkommen, sa den kortaste, Jag heter Gösta. Här, fortsatte han, står Ludvig (han pekade på den store) och här har vi Gustav Det är riktigt, som han säger att han heter Gösta, men jag heter Kurt, sa den medellånga, och den store mannen här heter Torkel. Den långa mannen tog till orda: Jag heter Ludvig, men den korte där heter Valdemar och han av medellängd heter Osvald Om åtminstone en av dem tillhörde S, vad hette då de tre männen? Problemlösning 34. Sture möter fyra män (2) De fyra männen heter Adam, Bertil, Curt och David. En endast två av dem yttrade sig. Adam: Jag tillhör S, Bertil tillhör L, Curt tillhör L och David tillhör S Bertil: Adam tillhör L, jag tillhör S, Curt tillhör A och David tillhör S. Till vilka stammar hör Adam, Bertil och Curt? Problemlösning 35. Stures sista äventyr (2) Varje år hålls en tävling mellan stammarnas hövdingar. Efter årets tävling berättade hövdingarna följande: Arne: Jag kom på andra plats och Bengt kom sist Bengt: Arne kom sist och Cesar vann Cesar: Jag kom sist och Arne vann Hur slutade tävlingen? Håkan Strömberg 127 KTH STH
5.5. LOGIK Problemlösning 36. H 2 O (2) Ett H skapat av 8 slantar ska transformeras till ett O, som figur 5.35 visar. Det hela ska Figur 5.35: utföras med så få drag som möjligt. Dessutom måste den plats till vilken slanten ska flyttas, vara helt bestämd genom två intilliggande slantar, som figuren visar. Problemlösning 37. Multiple choice (3) 1 2 3 4 5 6 7 8 9 10 Sum A o x x o x x o o x o 80 B x o x x x o x o x x 20 C o x o o o x o o o o 70 D x x o x o x x x o x? Här är resultatet från en kontrollskrivning i Diskret Matematik. Till varje uppgift fanns två alternativ, x eller o, där ett av dem var korrekt och gav 10 poäng. Adam, Bertil och Curt fick respektive 80,20 och 70 poäng. Det visade sig att läraren missat att rätta Davids skrivning. Hur många poäng fick han? Problemlösning 38. Sten, Sax, Påse Adam och Bertil spelade Sten, Sax, Påse. Regler: De två spelaren väljer ett av alternativen sax, sten och påse och visar sina val samtidigt. sax vinner över påse och får 1 poäng påse vinner över sten och får 1 poäng sten vinner över sax och får 1 poäng Om båda spelarna väljer samma alternativ är den omgången oavgjord och ingen får någon poäng. När Adam och Bertil spelade använde de följande alternativ Adam Bertil Sten 3 2 Sax 6 4 Påse 1 4 Ingen av de 10 omgångarna slutade oavgjord. Vem vann och med hur mycket? Håkan Strömberg 128 KTH STH
Problemlösning 39. Summa och produkt (3) Summan av talen 1...9 är Produkten av samma tal 1+2+3+4+5+6+7+8+9 = 45 1 2 3 4 5 6 7 8 9 = 362880 Antag nu att vi vill gå bakvägen. Vi väljer ut 9 tal ur mängden {1...9}, adderar och multiplicerar dem. Kan vi då få summan 45 och produkten 362880 med ett annat urval än exemplet ovan? Problemlösning 40. Höger ben samtidigt (1) Bertil som är kortare än Adam tar 3 steg när Adam tar 2. Båda startar promenaden med att ta ett steg med vänster ben. Hur många steg dröjer det innan de samtidigt tar ett steg med höger ben? Figur 5.36: Problemlösning 41. De tre lamporna. (2) Tre strömbrytare (figur 5.36) är kopplade till lika många lampor i källaren, men du vet inte vilken som går till vilken. Din uppgift är att ta reda på det. Du får vippa på strömbrytarna, men bara gå ned i källaren en enda gång. Problemlösning 42. Två multiplikationer (2) Här ska du använda siffrorna 1...9 exakt en gång genom att skriva in dem i rutorna i Figur 5.37: figur 5.37 och samtidigt bilda två korrekta multiplikationer. Håkan Strömberg 129 KTH STH
5.5. LOGIK Problemlösning 43. Far och son (1) Pappan: Jag har just kommit på att, om jag byter plats på siffrorna i min ålder, så får jag din ålder. Sonen: I morgon kommer du att vara exakt dubbelt så gammal som jag. Hur gammal är pappan och sonen idag. Var inte för snabb när Du svarar! Problemlösning 44. Pentominoes (2) Överst i figur 5.38 ser du, i grönt, alla sätt att kombinera fem kvadrater till en pusselbit. Figur 5.38: Dessa tolv bitar, som kallas pentominoes och uppfanns av Solomon Golomb på 1950-talet, förekommer i ett otal matematiska och förströelseproblem. Uppgiften här består i att kombinera två av dem så att de täcker de tio rutorna i den gula figuren. Observera att bitarna får både vridas och vändas. Plats har gjorts för tre olika lösningar finns det fler? Problemlösning 45. Heltalskvadrater hela vägen (2) Placera talen 1...15 i en rad så att summan av två intilliggande tal alltid är en heltalskvadrat....2,7,9,...6,10,14,... Om detta vore en föreslagen lösning, skulle första gruppen vara korrekt eftersom 9 och 16 är heltalskvadrater. I den andra dock, är 10+14 = 24 ingen heltalskvadrat. Håkan Strömberg 130 KTH STH
Problemlösning 46. Dålig telefonlinje (3) Vid ett tillfälle råkade Adam avlyssna följande telefonsamtal mellan Bertil och Curt. Men eftersom kvaliteten var ganska dålig kunde han inte höra allt vad som sas. Bertil: Jag har just köpt frimärken för exakt 200 kr av valörerna 12 kr, 14 kr och 17 kr Curt: Hur många köpte du av varje sort? Bertil: Det vill jag inte säga, men jag köpte total (prassel) frimärken Curt: I så fall kanske jag kan räkna ut det... vänta lite. Nej, jag kan fortfarande inte säga hur många du köpte av varje sort. "Köpte du endast ett av någon sort? Bertil: (prassel) Curt: I så fall köpte du... Hur många frimärken av varje sort hade Bertil köpt? Observera att Curt hade bättre mottagningsförhållande och kunde höra allt vad Bertil sa. Problemlösning 47. David och Goliat (3) eller (5) Till den här uppgiften har jag skrivit ett litet program som du hittar på hemsidan. David och Goliat är en form av labyrint, som David (röd fyrkant) ska ta sig ur. Problemet är att i labyrinten finns också Goliat (blå kvadrat), som försöker fånga David. Du är David! David kan flytta ett steg i taget i en av de fyra riktningarna: uppåt, nedåt, vänster och höger, om det inte finns någon vägg i vägen. Draget görs med de fyra piltangenterna. David kan låta bli att flytta genom att trycka mellanslag Goliat flyttar efter David och kan då ta upp till två steg. Han är dum och väljer alltid sitt drag efter en viss princip. Först undersöker han om han kan komma närmare David genom ett horisontellt drag. Om så är fallet utför han detta steg. Om inte undersöker han om han kan komma närmare med ett vertikalt drag. Sedan utför han i tur och ordning proceduren ovan en gång till. Ibland kommer Goliat att flytta två steg men han kan också komma att stå helt stilla. Om Goliat fångar David är spelt förlorat för David Om David når utgången har David vunnit Spelet innehåller 15 olika labyrinter med olika svårighetsgrad och storlek. I menyn, under Välja bestämmer man vilken man vill försöka lösa. Med DELETE-tangenten återställer man labyrinten till utgångsställningen Med RETURN-tangenten återgår man till spelet efter JA eller NEJ-skyltarna Klarar du labyrint 5 får du 3 poäng. Klarar du labyrint 15 får du 5 poäng (men då inget för labyrint 5). Håkan Strömberg 131 KTH STH
5.5. LOGIK Laboration Laborationsuppgift 35. När är uttrycket sant? (2) A,B och C är boolska variabler. För vilka uppsättningar av dessa är följande uttryck sant: ((A B) ( A C)) (B C) Laborationsuppgift 36. Summan av alla tal (2) Bestäm summan av, i tur och ordning, alla tre-, fyra-, fem- och sexsiffriga tal. Kan du se något mönster hos dessa summor? Ställ då upp en formel och försök att direkt säga summa av alla sjusiffriga tal? Laborationsuppgift 37. Samma rest (2) Vi är här på jakt efter det minsta heltalet n > 1, sådant att det ger resten 1 vid division med var och en av talen 2...10. Laborationsuppgift 38. Vilka baser (2) I vilka baser b är talet 121 b en heltalskvadrat? Laborationsuppgift 39. Pilkastning (2) I en pilkastningstävling användes en mycket speciell piltavla, där de olika ringarna hade följande värden 1,9,10,11,13,18,25,35. Det visade sig efter tävlingen, att flera deltagare alla hade fått resultatet 55 (fyra pilar användes), utan att för den skull någon av dem träffat i exakt samma ringar och utan att någon missat tavlan. Vilket är då det största möjliga antalet spelare med summan 55? Laborationsuppgift 40. Summan av heltalskvadrater (2) Jag valde mer på måfå ut talen När jag kvadrerade dem fick jag 7,8,9,10,11,12,13,14 49,64,81,100,121,144,169,196 Efter en stunds pysslande kom jag fram till att 49+100+144+169 = 462 64+81+121+196 = 462 Det vill säga jag har lyckats dela upp heltalskvadraterna i två grupper där summan i varje grupp är 462. Kan du finna åtta på varandra följande heltal, vars kvadrater på detta sätt kan delas upp i två grupper så att summan blir den samma i båda grupperna? Kan du hitta ytterligare åtta tal med denna egenskap? Kan du gissa vad som krävs av de åtta talen för att detta ska fungera? Håkan Strömberg 132 KTH STH
Laborationsuppgift 41. Summan av två primtal (2) På en lapp stod skrivet 6 olika siffror. Adam fick nu i uppgift att kombinera dem till två primtal, sådan att summan av dem blir 1000. Han skulle få lika många kronor, som det största av de två talen. Efteråt visade det sig att han kunde ha tjänat ännu mer om han valt rätt kombination. Vilka var de två tal som ingick Adams svar? Laborationsuppgift 42. Summor ger primtal (2) Vilka primtal kan erhållas som summan ett eller flera elementen ur mängden M = {2,5,9,12,17,21,34} Laborationsuppgift 43. Antal element (2) Med universum U = {1,2,3,...,100} och mängden A = {1,4,7,10,13,...,100}, mängden B = {1,3,5,7,9,...,99} och mängden C, som består av alla primtal< 100 ska du bestämma (A B) ( A C ) Lösningar Teoriuppgifter Lösning Teoriuppgift 66 Detta betyder att p q r q r p (q r) p q (p q) r 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 p (q r) och (p q) r inte är likvärdiga och att man, eftersom det inte finns någon definierat prioritetsordning mellan satskonnektiven, inte bör utelämna parenteserna även om går före och går före både och i Mathematica Detta hade vi kunnat få reda på med hjälp av Mathematica genom Equivalent[p (q && r), (p q) && r] // TautologyQ False Equivalent[p q && r, p ( q && r)] // TautologyQ True Equivalent[p q && r, (p q) && r] // TautologyQ False Håkan Strömberg 133 KTH STH
5.5. LOGIK Lösning Teoriuppgift 67 r s r s S S F S F S F S S F F F Man kan konstruera 16 olika konnektiv. De två konnektiven där samtliga leder till true respektive false verkar meningslösa. Lösning Teoriuppgift 68 f = Implies[(Implies[p,q] && Implies[q,r]),Implies[p,r]] BooleanTable[{p, q, r} -> f, {p, q, r}] {{True,True,True} ->True, {True,True,False} ->True, {True,False,True} ->True, {True,False,False} ->True, {False,True,True} ->True, {False,True,False} ->True, {False,False,True}->True, {False,False,False} ->True} Uttrycket är sant för alla värden på p, q och r vilket betyder att det kan skrivas på enklaste sätt som True. Uttrycket är en tautologi. Lösning Teoriuppgift 69 Ja det här är också en tautologi vilket detta visar f = Implies[Implies[p,Implies[p,r]],Implies[Implies[p,q],Implies[p,r]]]; BooleanTable[{p, q, r} -> f1, {p, q, r}] {{True,True,True} ->True, {True,True,False} ->True, {True,False,True} ->True, {True,False,False} ->True, {False,True,True} ->True, {False,True,False} ->True, {False,False,True}->True, {False,False,False} ->True} Hade också kunna skrivas TautologyQ[f] True Lösning Teoriuppgift 70 20 Håkan Strömberg 134 KTH STH
Lösning Teoriuppgift 71 Vi nöjer oss med att visa ena delen av DeMorgans lag p q p q (p q) p q p q 1 1 1 0 0 0 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1 Fjärde och sjunde kolumnen är lika. Därmed har vi bevisat lagen. Lösning Teoriuppgift 72 En sanningstabell övertygar oss p q p q p p q 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 Kolumn 3 och 5 är lika, vilket bevisar sambandet. Lösning Teoriuppgift 73 BooleanMinimize[!(!((p q) && r)!q)] q && r Lösning Teoriuppgift 74 g: Marsianer är gröna h: Marsianer har tre huvuden f: Marsianer kan flyga g (h f) (g f) h f1 = Implies[Implies[g, (h! f)], Equivalent[g, f] &&! h] BooleanTable[{g, h, f} -> f1, {g, h, f}] {{True,True,True} ->False, {True,True,False} ->False, {True, False, True} ->True, {True, False, False} ->False, {False, True, True} ->False, {False, True, False} ->False, {False, False, True}->False, {False, False, False}-> True} Håkan Strömberg 135 KTH STH
5.5. LOGIK Ger svaret [True,False,True] och [False,False,False]. Då marsianerna hade minst en av egenskaperna är det första svaret som gäller: Marsianer är gröna och kan flyga. Däremot har de inte tre huvuden Lösning Teoriuppgift 75 Den enda dagen Adam kan säga Igår ljög jag är måndag eller torsdag. Den enda dagen Bertil kan säga Igår ljög jag är torsdag eller söndag. Alltså är det torsdag idag. Lösning Teoriuppgift 76 Adams första mening medför att det är måndag eller torsdag. Den andra meningen medför att det inte är torsdag. Alltså är det måndag idag. Lösning Teoriuppgift 77 Från denna tabell ser vi att det aldrig kan ske Må Ti On To Fr Lö Sö L L L S S S S Lösning Teoriuppgift 78 Här illustrerar vi skillnaden mellan att göra två uttalanden skilda från varandra och att göra ett uttalande som är en konjunktion av två satser. Skillnaden mellan p och q för sig och p q. För att p q ska vara falskt räcker det att ett av p och q är falskt. Den enda dagen i veckan som det kan vara sant att Adam ljög igår och kommer att ljuga imorgon är tisdag. Men det kan inte vara tisdag för då skulle Adam ha talet sanning på en dag då han alltid ljuger. Därför måste Adams uttalande vara falskt och då måste det handla om antingen måndag eller onsdag. Lösning Teoriuppgift 79 Följande tabell avslöjar svaret Må Ti On To Fr Lö Sö L L L S S S S S S S L L L S Om uttalandena var gjorda på någon dag utom söndag, skulle båda nämna samma namn, eftersom en ljuger och en talar sanning. Alltså måste det vara söndag och båda talar sanning. Lösning Teoriuppgift 80 Det andra uttalandet måste vara sant. Enda gången p q kan vara falskt är då p är sant och q är falskt, men det är ju omöjligt här. Eftersom båda inte kan tala sanning, endast på söndag, så måste första uttalandet vara falskt och den förste är alltså David och den andre Curt. Håkan Strömberg 136 KTH STH
Lösning Teoriuppgift 81 Svaret måste vara falskt eftersom båda talar sanning på söndag. Då aldrig båda kan ljuga samtidigt måste den andre tala sanning och svara Nej. Lösning Teoriuppgift 82 Vi tar tabellen till hjälp: Må Ti On To Fr Lö Sö L L L S S S S S S S L L L S Det är uppenbart att den förste ljuger, men vi vet inte vilken av raderna i tabellen han tillhör eller? Eftersom han ljuger så måste han tala sanning på lördag och den första raden i tabellen tillhör honom! Då måste den andre tala sanning. Vi vet nu att det är onsdag idag Lösning Teoriuppgift 83 Påståendet är falskt för om det vore sant får vi en motsägelse för Jag ljuger idag. Alltså ljuger han. Vi har två påståenden: a Jag ljuger idag b Jag heter Curt För att a b ska vara sant måste både a och b vara sanna. Eftersom a är sant får inte b vara sant och han heter David. Lösning Teoriuppgift 84 Om han ljuger idag, så skulle första delen av påståendet vara sant och därmed hela uttalandet. Detta är en motsägelse. Alltså talar han sanning och uttalandet är sant. Eftersom han inte ljuger så måste han heta Curt. Håkan Strömberg 137 KTH STH
6.6. KOMBINATORIK Dagens Teori 6.6 Kombinatorik Många problem inom matematiken, datalogin och ingenjörsvetenskapen består av att räkna antalet objekt med speciella egenskaper. Även om det inte finns någon absolut regel för hur man når målet, finns det ett antal grundläggande verktyg och tekniker som som kan användas för att lösa många av dessa problem. Följande två föreläsningar kommer att handla om methods of counting. I vår moderna tid, finner man, inom nästan alla områden, det nödvändigt att åtminstone då och då lösa problem av kombinatorisk natur. För en dataingenjör, är stora delar av designarbetet hos ett program, ett kombinatorsiskt problem. Administratören lägger schema eller planerar transporter. Bonden betraktar olika möjligheter till utsäde på sina åkrar. Aktiespararen kalkylerar med olika fondplaceringar. Pokerspelaren optimerar sina chanser. Kemisten granskar möjliga kombinationer av atomer och molekyler. Statistikern tar i betraktande olika arrangemang inför ett experiment. Det finns tre grundläggande problem inom kombinatoriken som svarar på frågorna: Finns det någon lösning över huvud taget? Hur många lösningar finns det? Vilken lösning är billigast? 6.6.1 Ett svårt problem Schackbrädet och dominobrickorna Vi har ett vanligt schackbräde med 64 rutor i 8 rader och 8 kolumner. Vi har också ett tillräckligt antal dominobrickor, så stora att de täcker två rutor på schackbrädet. Det är inget problem, att med 32 brickor täcka hela schackbrädet, ett enkelt uppsättningsproblem. Det är ganska svårt, men inte omöjligt att ta reda på att det finns olika lösningar. 2 4 901 2 = 12988816 Frågan är nu om man ska lösa problemet med ren matematik och försöka hitta en formel som ger svaret, eller tillåter man sig att använda ett program. Den här formeln hittar man på nätet. Den bestämmer antalet lösningar för 2n 2n. För vårt aktuella fall är det n = 4, som gäller. ( n n ( ) f(n) = 2 (2n2 ) iπ 2 ( ) ) jπ 2 cos + cos 2n+1 2n+1 i=1 j=1 Håkan Strömberg 138 KTH STH
Med lite möda kan man översätta den till Mathematica f[n_] := 2^(2n^2)* Product[ Product[Cos[i*Pi/(2n+1)]^2+Cos[j*Pi/(2n+1)]^2,{j,1,n}], {i, 1, n}] Table[Round[N[f[i], 300]], {i, 0, 9}] och får följande tabell n Antal lösningar 0 1 1 2 2 36 3 6728 4 12988816 5 258584046368 6 53060477521960000 7 112202208776036178000000 8 2444888770250892795802079170816 9 548943583215388338077567813208427340288 Detta problem är ekvivalent med ett berömt problem i molekylär fysik, vid namn Dimer problem. C-programmet domino.c räknar antalet lösningar. Tekniken som används kallas backtracking. Programmet, som kan användas för olika storlekar hos brädet, kräver förstås att en av dimensionerna är jämn. 1 #include <stdio.h> 2 #define rad 3 3 #define kol 10 4 5 int brade[rad+2][kol+2], antal=0; 6 7 void init(void){ 8 int i,j; 9 for(i=0;i<=rad+1;i++) 10 for(j=0;j<=kol+1;j++) 11 brade[i][j]= 1; 12 for(i=1;i<=rad;i++) 13 for(j=1;j<=kol;j++) 14 brade[i][j]=0; 15 } Håkan Strömberg 139 KTH STH
6.6. KOMBINATORIK 1 2 void solve(int n){ 3 int r,k,ok=0; 4 if (n==rad kol/2) 5 antal++; 6 else{ 7 for(r=1;r<=rad;r++) 8 for(k=1;k<=kol;k++) 9 if(brade[r][k]==0){ 10 ok=1; 11 goto ut; 12 } 13 ut: if(ok){ 14 if(k<kol && brade[r][k]==0 && brade[r][k+1]==0){ 15 brade[r][k]=1; 16 brade[r][k+1]=1; 17 solve(n+1); 18 brade[r][k]=0; 19 brade[r][k+1]=0; 20 } 21 if(r<rad && brade[r][k]==0 && brade[r+1][k]==0){ 22 brade[r][k]=1; 23 brade[r+1][k]=1; 24 solve(n+1); 25 brade[r][k]=0; 26 brade[r+1][k]=0; 27 } 28 } 29 } 30 } 31 1 int main(void){ 2 int i,j; 3 init; 4 solve(0); 5 printf("antal lösningar %d\n",antal); 6 } Vi ser bland annat att funktionen solve anropar sig själv. Detta kallas rekursion. Vi återkommer till denna typ av algoritmer i kursen Algoritmer och Datastrukturer. Vi får betrakta det som, mycket svårt att konstruera (och bevisa) formler av det slag, som den ovan. Men program, i den här stilen, kommer du att kunna skriva efter jul! En nackdel med programmet är att man knappast kan använda det för n > 4. 6.6.2 Grundläggande verktyg Additionsprincipen Denna princip är mycket elementär. Det hela är summan av dess delar En partition av en mängd S är en samling av delmängder S 1,S 2,...,S m av mängden S, sådan att varje element i S tillhör exakt en av delmängderna. Vi kallar då mängderna Håkan Strömberg 140 KTH STH
disjunkta. Vi får Som ibland skrivs samt att S = S 1 S 2... S m S = n i=1 S i S i S j =,(i j) Mängderna S 1,S 2,...,S m som är disjunkta mängder kallas delarna. Antalet element i en mängd S betecknas med S och kallas S s kardinaltal. Vi uttrycker nu additionsprincipen Sats 9 Additionsprincipen. Antag att en mängd S är delad i delarna S 1,S 2,...,S m. Antalet objekt i S kan då bestämmas genom S = S 1 + S 2 +...+ S m Exempel 53 En student tänker läsa en kurs i matematik eller en i biologi. Om det finns 4 olika matematikkurser och 3 olika biologikurser att välja bland har studenten 4+3 = 7 valmöjligheter. En student tänker läsa en kurs i matematik eller en i biologi. Om det finns 4 olika matematikkurser, där en heter Matematisk Biologi och 3 olika biologikurser bland vilka kursen Matematisk Biologi ingår, att välja bland har studenten nu 6 valmöjligheter. Då de två mängderna inte är disjunkta kan additionsprincipen inte användas, 3+4 6. Multiplikationsprincipen Sats 10 Låt S vara en mängd av ordnade par (a,b) av element, där det första objektet a kommer från en mängd A och det andra från en mängd B. Då har S, som ju är den kartesiska produkten A B, kardinaltalet S = A B Om vi delar in S i delarna S 1,S 2,...,S A, där S i är den mängd av ordnade par första objektet är a i. Storleken av varje S i = B. Eftersom det finns A sådana mängder är S = A B. Vi har använt additionsprincipen ett upprepat antal gånger. Exempel 54 En student tänker läsa en kurs i matematik och samtidigt en kurs i biologi. Om det finns 4 olika matematikkurser och 3 olika biologikurser att välja bland har studenten 4 3 = 12 valmöjligheter. Exempel 55 Hur många tvåsiffriga tal finns det där siffrorna är olika och där siffran 0 inte ingår? Ett tvåsiffrigt tal ab kan skrivas som ett par (a, b), där a är tiotalssiffran och b entalssiffran. Ingen av dessa siffror får vara 0 och siffrorna ska vara olika. Vi har 9 valmöjligheter för första siffran. När väl tiotalssiffran är vald finns det 8 möjligheter för entalssiffran. Använder vi nu multiplikationsprincipen får vi 9 8 = 72. Håkan Strömberg 141 KTH STH
6.6. KOMBINATORIK Ett alternativt sätt att nå fram till svaret. Det finns 9 10 = 90 tvåsiffriga tal. Av dessa innehåller 9 en 0:a, 10,20,... och 9 stycken innehåller två identiska siffror 11,22,... Detta ger 90 9 9 = 72 Ibland kan det vara enklare att ta reda på det totala antalet T, som här 90 och sedan subtrahera antalet hos de delar som inte ingår, här två gånger 9. Sats 11 Att arrangera n olika objekt i en rad. n! = n(n 1)(n 2)...2 1 n! uttalas n-fakultet. Även beteckningen P(n,n) förekommer. Exempel 56 Varje kö, som kan bildas, kallas en permutation. Om vi vill ta reda på hur många möjligheter vi har att ordna 8 olika objekt i en kö, tänker vi så här: Det finns 8 möjligheter att välja det objekt, som ska stå först i kön. När vi nu valt detta objekt, finns det 7 möjligheter att välja det andra objektet. Vi har 8 7 = 56 möjligheter att välja de två första objekten. Fortsätter vi detta resonemang når vi fram till 8 7 6 5 4 3 2 1 = 40320 8 objekt har 40320 permutationer. Fakultetsfunktionen växer snabbt. Redan 20! är 20! = 2432902008176640000 Tänker vi oss ett program som ska ge oss svaret inom rimlig tid kanske vi inte kan acceptera mer än 13! = 6 227 020 800. Om inte alltför stora beräkningar behöver göras, för varje permutation, är 6 10 9 en acceptabel gräns. Sats 12 Att arrangera k element i en kö, när man har n objekt att välja från och k n. P(n,k) = n(n 1)(n 2)...(n k+1) Exempel 57 Det finns n möjligheter att välja första objektet, n 1 möjligheter att välja andra objektet och n k+1 sätt att välja det sista. I en förening med 30 medlemmar ska man välja en ordförande, en kassör och en sekreterare. På hur många sätt kan detta val utföras? 30 29 28 = 24360 Detta under förutsättning att en person inte kan väljas till fler än en förtroendepost. Sats 13 Att arrangera k 1 identiska objekt med k 2 identiska objekt i en rad (k 1 +k 2 )! k 1! k 2! Håkan Strömberg 142 KTH STH
Detta kan generaliseras till n olika typer av objekt och ger då formeln (k 1 +k 2 +...+k n )! k 1! k 2!...k n! Exempel 58 3 röda kulor, 4 vita och 2 blåa, alla inbördes helt lika ska läggas i en rad. Då finns Sats 14 Att arrangera n objekt i en ring. (3+4+2)! 3! 4! 2! (n 1)! Där det är tillåtet att rotera ett arrangemang = 1260 Exempel 59 7 personer kan arrangeras 6! = 720 sätt runt ett bord. Hade de suttit i en rad hade det istället kunnat bildats 7! = 5040 rader. Man måste här inse att om ett arrangemang kan roteras till ett annat är det samma arrangemang som avses. 6.6.3 Urnmodellen Många räkneproblem kan delas in i en av fyra typproblem. Vi tänker oss en urna innehållande n kulor i olika eller devis olika färger. Att dra m kulor från en urna innehållande n kulor kan göras på flera olika sätt. n,m N där n m. I figurerna nedan innehåller urnan från början 4 kulor (en röd, en grön, en blå och en gul), n = 4. I varje exempel handlar det om att dra m = 2 kulor. med hänsyn tagen till ordningen i vilken kulorna dras och med återläggning (genom att lägga tillbaka varje kula i urnan efter dragningen). med hänsyn tagen till ordningen men utan återläggning. utan hänsyn till ordningen och med återläggning utan hänsyn till ordningen men utan återläggning Sats 15 Med hänsyn till ordning och utan återläggning. m kulor dras ur en urna med n kulor. Antal möjligheter: Exempel 60 P(n,m) = n (n 1) (n 2)...(n m+1) 4 3 = 12 Håkan Strömberg 143 KTH STH
6.6. KOMBINATORIK Figur 6.39: Vi drar två kulor utan återläggning med hänsyn tagen till ordningen Sats 16 Med hänsyn tagen till ordning och med återläggning. m kulor dras ur en urna med n kulor Antal möjligheter: m {}}{ n n...n = n m Exempel 61 Figur 6.40: Vi drar två kulor med återläggning med hänsyn tagen till ordningen 4 4 = 16 Sats 17 Utan hänsyn tagen till ordning och utan återläggning. m kulor dras ur en urna med n kulor. Antal möjligheter: Exempel 62 C(n,m) = ( ) n = m ( ) 4 = 6 2 n! m!(n m)! Håkan Strömberg 144 KTH STH
Figur 6.41: Vi drar två kulor utan återläggning utan hänsyn tagen till ordningen Sats 18 Utan hänsyn tagen till ordning och med återläggning. m kulor dras ur en urna med n kulor. Antal möjligheter: Exempel 63 ( ) n+m 1 m = (n+m 1)! m! (n 1)! Figur 6.42: Vi drar två kulor med återläggning utan hänsyn tagen till ordningen ( ) 4+2 1 = 2 ( ) 5 = 10 2 De tre första satserna kräver knappast något bevis. De bygger alla på multiplikationsprincipen. Däremot kan det vara på plats med ett bevis av den sista. Figur 6.43: En urna med tre kulor av lika många färger. Vi ska nu dra tio kulor med återläggning I en urna finns n olika kulor, figur 6.43. En kula i taget dras och noteras med ett svart streck under rätt kula, som i figur 6.44, och läggs sedan tillbaka. Efter m dragningar kan protokollet se ut som figuren visar. Frågan är nu hur många olika protokoll som kan uppstå! Protokollets yttre väggar (de blå) är fasta. Eftersom det finns n olika kulor i urnan, måste protokollet ha n 1 inre väggar (de röda). Vi tänker oss att dessa kan blandas fritt med de kortare, svarta markeringarna, som symboliserar dragna kulor. Då finns det m + n 1 röda och svarta streck. På hur många olika sätt kan man plocka ut m platser för kulorna? Jo på Håkan Strömberg 145 KTH STH
6.6. KOMBINATORIK ( ) n+m 1 m Figur 6.44: I figuren ser vi ett protokoll från dragning av 10 kulor från en urna innehållande tre kulor en grå, en svart och en vit I vårt exempel får vi: ( ) ( ) n+m 1 3+10 1 = = m 10 ( ) 12 = 66 10 När vi talar om att att ta hänsyn till ordningen avser vi permutationer. När vi talar om att inte ta hänsyn till ordningen avser vi kombinationer. Exempel 64 Hos hur många udda tal i intervallet 1000...9999 är alla siffror olika? I urnan finns siffrorna 0,...,9. Vi drar nu fyra siffror utan återläggning och med hänsyn tagen till ordningen. I denna mängd ingår S = 10 9 8 7 element, men flera av dem är inte godkända. Första siffran kan väljas på 9 sätt 1,...,9, andra också på 9 sätt, 0,...,9, dock inte den siffra som valdes som tusentalssiffra. Den tredje siffran kan väljas på 8 sätt då man undviker tidigare val. Men på hur många sätt kan man nu välja entalssiffran? Ja, det beror på tidigare val. Vi kommer helt enkelt inte vidare här! Om vi istället börjar med att välja entalssiffran, har vi 5 möjligheter, 1,3,5,7,9. Går vi sedan till tusentalssiffran kan den väljas på 9 sätt, hundratalssiffran på 8 sätt och tiotalssiffran på 7 sätt, med resultatet 5 9 8 7 = 2240 Binomialkoefficienten Mathematica Genom Binomial[a,b] får man i Mathematica reda på ( ) a a! = b b!(a b)! Vi har tidigare sett kopplingen mellan koefficienterna man får då man utvecklar (a+b) n och Pascals triangel. Genom följande tabell kopplar vi nu samman Pascals triangel och Håkan Strömberg 146 KTH STH
binomialkoefficienterna. ( 3 0 ( 0 ( 0) 1 ) ( 1 ( 0 1) 2 ) ( 2 ) ( 2 ) 0 ( 1 2) 3 ) ( 3 ) ( 3 1 2 3)... Vill man generera eller summera talen i en rad i Pascals triangel, till exempel talen på 5:e raden skriver man Fakultet Table[Binomial[5,i],{i,0,5}] Sum[Binomial[5,i],{i,0,5}] n! skriv helt enkelt n! i Mathematica Här en funktion, vi kallar binom och som räknar ut samma sak som den inbyggda funktionen binomial. Flatten binom[a_, b_] := a!/(b!(a-b)!) binom[10,3] 120 Ibland får man fler parenteser än man önskar och vill ta bort dem. Till detta använder man kommandot Flatten (finns i ListTools). Ett exempel lista1={{1},{2},{3},{4}}; Flatten[lista1] {1, 2, 3, 4} lista2={{1,2},{1,3},{4,5}}; Flatten[lista2] {1, 2, 1, 3, 4, 5} Strukturen av parenteser kan vara mer komplicerad lista3={{{1,2},3},{{4,5},6},{{7,8},9}}; Flatten[lista3] {1, 2, 3, 4, 5, 6, 7, 8, 9} Flatten[lista3,1] {{1, 2}, 3, {4, 5}, 6, {7, 8}, 9} Med hjälp av en parameter kan man bestämma hur måna nivåer man vill skala bort. Ett sista exempel lista4 = {1, {{{2}}}, {3, {{4}}}, {{1}, {{2}}}}; Flatten[lista4] {1, 2, 3, 4, 1, 2} Håkan Strömberg 147 KTH STH
6.6. KOMBINATORIK Flatten[lista4, 1] {1, {{2}}, 3, {{4}}, {1}, {{2}}} Flatten[lista4, 2] {1, {2}, 3, {4}, 1, {2}} Kommandot select Denna funktion kommer att returnera True eller False f[lista_] := Length[Union[lista]] == Length[lista] Det är en sådan funktion, ( boolsk), man måste ha i kombination med Select. När vi använder den får vi till exempel lista = {{1, 2, 3}, {1, 1, 3}, {3, 2, 2}, {4, 5, 6}}; Select[lista, f] {{1, 2, 3}, {4, 5, 6}} Returnerar de underlistor som kan tjänstgöra som mängder Teoriuppgifter Problem 85 Fyra personer ska bilda kö framför korvkiosken. Hur många olika köer kan bildas? Problem 86 Ett företag säljer mobiltelefoner. De för 4 olika modeller. Varje modell kan fås i en av 3 färger. Hur många kunder kan man högst sälja till, innan man med säkerhet kan säga att två personer har identiska mobiltelefoner? Problem 87 Som bekant kan en bit i datorn anta ett av värdena 0 eller 1. Om ett ord (word) i minnet består av 32 bitar, hur många olika värden (kombinationer av 0:or och 1:or) kan då ett ord anta? Problem 88 Tre vägar förbinder städerna A och B. Hur många olika turer kan man då företa om man startar i A, åker till B och sedan hem igen? Samma fråga om antalet vägar mellan städerna är 10. Problem 89 Hur många köer kan n personer bilda? Om vi sätter n personer runt ett bord, på hur många sätt kan det då göras? Problem 90 Håkan Strömberg 148 KTH STH
Vi har ett 10 cm långt måttband, som kan klippas av vid jämna centimeter, ett eller flera klipp. På hur många sätt kan hela arbetet utföras? Problem 91 Att tippa en rad på stryktipset innebär att välja 1, X eller 2 för 13 matcher. Hur många olika tipsrader kan tippas? Problem 92 En förening har 20 medlemmar. Bland dessa väljs en styrelse bestående av en ordförande, en sekreterare och en kassör. På hur många olika sätt kan styrelsen väljas? Problem 93 På V75 en vecka deltog i de sju olika loppen 7, 9, 8, 6, 10, 8 respektive 8 hästar. Hur många möjligheter finns det att tippa vinnarna i de sju loppen? Problem 94 Hur många femsiffriga tal finns det, om ett tal inte får inledas med siffran 0? Problem 95 Det finns förstås bara en rad som ger 13 rätt på tipset, men hur många rader finns de som ger 12 rätt? Hur många finns det som ger 0 rätt? Problem 96 En ganska ordinär bok innehåller 200 sidor. Varje sida har 30 rader och på en rad ryms 50 tecken, som kan väljas bland 80 tecken. Hur många olika böcker kan man skriva? Problem 97 På hur många sätt kan man ordna en kortlek? Är detta tal större än antalet elektroner i Vintergatan? Problem 98 På hur många sätt kan man ordna de åtta bokstäverna A,B,C,d,e,f,g,h? I hur många av dessa hamnar de tre versalerna (stora bokstäverna) först? Problem 99 En mängd har 5 objekt. Hur många delmängder med 2 objekt kan bildas? Hur många delmängder med 3 element kan bildas? Problem 100 Idag blommar alla tre växterna! Växten A blommar var 7:e dag, växten B blommar var 3:e dag och växten C blommar var 4:e dag. Efter hur många dagar blommar de tre växterna igen på samma dag? Problem 101 Håkan Strömberg 149 KTH STH
6.6. KOMBINATORIK Idag blommar alla tre växterna! Växten A blommar var 8:e dag, växten B blommar var 4:e dag och växten C blommar var 16:e dag. Efter hur många dagar blommar de tre växterna igen på samma dag? Problem 102 Vi har 5 kulor i olika färger. På hur många sätt kan vi plocka ut 0,1,2,3,4 respektive 5 kulor från dessa? Problem 103 3 herrar och 4 damer bildar kö. Hur många köer kan bildas om vi betraktar damerna som lika och även herrarna? Problem 104 Hur många tresiffriga tal finns det där ingen siffra är 7? Problem 105 I ett sammanträde deltar 14 herrar och 10 damer. Bland dessa ska utses en kommitté bestående av 2 herrar och 2 damer. På hur många sätt kan detta göras? Problem 106 Hur många olika ord kan man bilda med hjälp av de sex bokstäverna som finns i ordet PEPPER. Problem 107 Hur många gånger kommer satsen c++ att utföras i följande rutin for(i=1;i<=7;i++) for(j=4;j<9;j++) for(k=1;k<=13;k=k+2) c++; Problem 108 Orden ANNA och DALLASSALLAD kallas palindromer därför att de läses lika dan baklänges. Vårt alfabet innehåller numera 29 bokstäver, eftersom W har upphöjts till en egen bokstav. Hur många palindromer kan bildas med 5 bokstäver? Problem 109 Adam har 8 nära vänner. Varje lördag går han på krogen med 2 av dem. Efter hur många veckor måste han åter gå ut med två vänner som han tidigare varit ute med? Problem 110 Med hur många 0:or avslutas 100! Håkan Strömberg 150 KTH STH
Problem 111 Hur många heltal finns det där alla siffror är olika Problem 112 Hur många pokerhänder finns det, i 5-kortspoker? Hur många av dessa kan uppvisa en straight flush, (kort i nummerföljd i samma färg)? Problem 113 Fyra gifta par ska placeras runt middagsbordet, så att man sitter varannan dam och varannan herre och så att damerna slipper sitta bredvid sin man. Hur många olika placeringar finns det? Problem 114 Hur många pokerhänder finns det, i 5-kortspoker som innehåller ett fyrtal? Problem 115 Hur många pokerhänder finns det, i 5-kortspoker som innehåller precis två par? Problem 116 Framför Adam står tre skålar med godis. En innehåller kola, en polkagrisar och en sega gubbar, tillräckligt många av varje sort. Adam har fått tillåtelse att ta tillsammans 12 bitar. På hur många sätt kan han välja? Lösningar Teoriuppgifter Lösning Teoriuppgift 85 Man kan bilda 24 köer 4! = 4 3 2 1 = 24 Lösning Teoriuppgift 86 Totalt finns det 4 3 = 12 olika telefoner. När den 13 personen köper en telefon vet man med säkerhet att (duvhålsprincipen) minst två personer har identiska telefoner. Lösning Teoriuppgift 87 2 32 = 2 2... 2 = 4 294 967 296 Lösning Teoriuppgift 88 Man kan välja 3 olika vägar när man reser från A. Man har lika många vägar att välja på när man lämnar B. Totalt kan man företa 3 3 = 9 olika turer. Då antalet vägar mellan städerna är 10 finns det 10 2 = 100 olika turer. Håkan Strömberg 151 KTH STH
6.6. KOMBINATORIK Lösning Teoriuppgift 89 Man kan bilda n! köer och placera n människor runt ett bord på (n 1)! olika sätt om man bestämmer att två placeringar, som kan roteras så att de överensstämmer, är identiska. Lösning Teoriuppgift 90 För varje centimeter-markering har vi att välja om vi vill klippa här eller inte. Totalt har vi att göra 9 val. Det leder till 2 9 = 512 olika sätt att utföra arbetet. Lösning Teoriuppgift 91 Vi ska göra 13 val. För varje val har vi 3 möjligheter Det finns 1 594 323 olika tipsrader. 3 13 = 1594323 Lösning Teoriuppgift 92 Om samma person inte får inneha fler än en post kan styrelsen väljas på 20 19 18 = 6840 sätt. Om däremot samma person kan inneha flera poster finns det möjligheter. 20 20 20 = 20 3 = 8000 Lösning Teoriuppgift 93 7 9 8 6 10 8 8 = 1 935 360 vilket är liktydigt med antalet olika V75-rader som kan konstrueras Lösning Teoriuppgift 94 Eftersom 0 inte är tillåtet alternativ i valet av första siffra får 9 10 10 10 10 = 90000 Håkan Strömberg 152 KTH STH
Lösning Teoriuppgift 95 Vi tillåter oss att ha 1 fel. Eftersom det finns 13 matcher finns det 13 möjligheter att välja ut en match. Varje match kan tippas fel på 2 sätt. Alltså finns det 26 rader med 12 rätt. När man har 0 rätt på tipset har man fel i alla matcher. I varje match har man 2 möjligheter att tippa fel. Alltså finns det 2 13 = 8192 rader med 0 rätt. Sannolikheten att få 0 rätt är Chansen att få 13 rätt är betydligt mindre 2 13 0.005 313 1 6.27 10 7 313 Lösning Teoriuppgift 96 Totalt innehåller boken 200 30 50 = 300000 tecken. Varje tecken kan väljas på 80 olika sätt. Det betyder att man kan skriva olika böcker av denna storlek. 80 300000 10 570927 Lösning Teoriuppgift 97 En kortlek kan ordnas på 52! = 80658175170943878571660636856403766975289505440883277824000000000000 olika sätt, ungefär 8 10 67 Lösning Teoriuppgift 98 Bokstäverna kan ordnas på 8! = 40320. Om vi tvingas att ha versalerna först får vi rader. 3 2 1 5 4 3 2 1 = 720 Lösning Teoriuppgift 99 Vi kan välja ut 2 element ur 5 på ( ) 5 = 10 2 sätt. Kanske inser man att även ( ) 5 = 10 3 Håkan Strömberg 153 KTH STH
6.6. KOMBINATORIK Lösning Teoriuppgift 100 Svaret till detta problem får vi genom lcm(7,3,4) = 7 3 4 = 84 De tre talen har inga gemensamma faktorer Lösning Teoriuppgift 101 Svaret till detta problem får vi genom eftersom 4 16 och 8 16 lcm(4,8,16) = 16 Lösning Teoriuppgift 102 Femte raden i Pascals triangel ser ut så här som vi får genom att beräkna ( ) 5, 0 ( ) 5, 1 1,5,10,10,5,1 ( ) 5, 2 ( ) 5, 3 ( ) 5, 4 ( ) 5 5 Lösning Teoriuppgift 103 7! 4! 3! = 35 Lösning Teoriuppgift 104 Första siffran kan väljas på 8 sätt. Andra och tredje på 9. Totalt finns tresiffriga tal som saknar siffran 7. 8 9 9 = 648 Lösning Teoriuppgift 105 Först har vi att välja ut 2 herrar bland 14 ( ) 14 = 91 2 sedan 2 damer bland 10 ( ) 10 = 45 2 Totalt kan valet göras på ( ) 14 2 ( ) 10 = 91 45 = 4095 sätt 2 Håkan Strömberg 154 KTH STH
Lösning Teoriuppgift 106 6! 3! 2! 1! = 60 Lösning Teoriuppgift 107 Den yttersta loopen snurrar 7 varv. Den mittersta snurrar 5 varv och den innersta 7. Det betyder att den innersta satsen kommer att utföras 7 5 7 = 245 Lösning Teoriuppgift 108 Första, andra och tredje bokstaven kan alla väljas på 29 sätt. Den femte och sjätte är däremot redan bestämda. Alltså finns det palindromer med 5 bokstäver. 29 3 = 24389 Lösning Teoriuppgift 109 Kan kan välja ut 2 vänner ur en grupp på 8 på ( ) 8 = 28 2 sätt. Det betyder att han den 29 dagen måste göra ett val som han gjort tidigare. Lösning Teoriuppgift 110 Vi ska alltså multiplicera talen 1 2 3... 99 100 För att åstadkomma en 0:a sist i talet krävs en faktor 5 och en faktor 2. Antalet nollor i 100! beror på hur många par 5 2 det finns i produkten ovan. Vi förstår att det måste finnas betydligt fler av faktorn 2 än av faktorn 5. Därför räknar vi nu hur många faktorer 5 det finns. Vi betraktar de 20 talen 5,10,15,20,25,...,95,100 Då talen 25,50,75,100 innehåller faktorn 5 två gånger får vi att faktorn 5 förekommer totalt 24 gånger, vilket betyder att 100! avslutas med 24 nollor. Håkan Strömberg 155 KTH STH
6.6. KOMBINATORIK Lösning Teoriuppgift 111 Eftersom talet 9876543210 är det största tal som kan skapas under dessa förutsättningar finns det en övre gräns för antalet. Det finns 10 ensiffriga tal, 9 9 tvåsiffriga och 9 9 8 tresiffriga. Fortsätter vi denna serie får vi 10+81+648+4536+27216+136080+544320+3265920+3265920 = 7244731 Lösning Teoriuppgift 112 Det finns ( ) 52 = 2598960 5 olika pokerhänder. Det finns 4 färger att välja mellan. Inom varje färg finns 10 olika straight flush. ( ) 4 10 = 40 1 Lösning Teoriuppgift 113 Vi börjar med att placera ut herrarna på varannan stol. Detta kan göras på (4 1)! = 6 sätt. Den första damen vi ska placera ut har två möjliga platser. Sedan finns det inga fler val! Det finns nu en man med två tomma stolar intill sig och vars fru ännu inte är placerad. Eftersom det finns tre lediga stolar så är det bestämt var hon ska sitta. Fruarna till de två män, som inledningsvis fick en dam bredvid sig är ännu inte placerade. För dessa damer finns inga val. Svaret är alltså 6 2 = 12 olika placeringar. Lösning Teoriuppgift 114 Det finns 13 olika valörer att välja bland. Det femte kortet kan väljas på 48 olika sätt ( ) ( ) 13 48 1 1 Lösning Teoriuppgift 115 Vi ska välja ut 2 valörer av 13. När valörerna är valda ska vi välja ut 2 kort av 4 för varje valör. Återstår så att välja ut det sista kortet, så att det inte leder till en kåk (full hand). ( 13 2 )( 4 2 )( ) 4 44 = 123552 2 123552 händer av 2598960 innehåller två par i given. Sannolikheten för att detta ska inträffa är 123552 2598960 = 4.75% Håkan Strömberg 156 KTH STH
Lösning Teoriuppgift 116 Här är det inte fråga om ordning eller återläggning. Alltså är det formeln ( ) ( ) ( ) n+m 1 3+12 1 14 = = = 91 m 12 12 Så här kollade jag resultatet med några rader i Mathematica m=flatten[table[k,{i,1,12}],table[p,{i,1,12}],table[s,{i,1,12}]]; m1 = Permutations[m,{12}]; Length[m1] 531441 m1[[123000]] {k, s, k, k, s, k, s, k, p, p, p, s} m2 = Map[Sort, m1]; Length[m2] 531441 m2[[123000]] {k, k, k, k, k, p, p, p, s, s, s, s} Length[Union[m2]] 91 Metoden fungerar, vad gäller minnet, så länge det är ett relativt litet antal karameller det handlar om. Laboration Laborationsuppgift 44. Summa av primfaktorer (2) Talet 12 har primfaktorerna 2,2,3 och deras summa är 7. Vilket är det minsta tal som vars primfaktorer har summan 100? Laborationsuppgift 45. Summa bildar heltalskvadrat (2) En heltalskvadrat är, som du nu bör känna till, ett tal x 2 där x N. Två konsekutiva heltal är två på varandra följande, till exempel 12 och 13. Följaktligen är tre konsekutiva heltal tre på varandra följande heltal, till exempel 17, 18 och 19. Ta reda på hur många tripplar av konsekutiva heltal, där alla tre talen är < 1000, det finns vars summa också är en heltalskvadrat. Laborationsuppgift 46. Ulam (2) Den här algoritmen kom en matematiker vid namn Ulam på: Börja med ett positivt heltal n vilket som helst. Om talet n är udda beräkna n 3n+1 Om talet n i stället är jämnt beräkna n n/2 Om talet n 1 gå tillbaka till första punkten. Håkan Strömberg 157 KTH STH
6.6. KOMBINATORIK Ingen matematiker har ännu lyckats bevisa att man alltid, förr eller senare, når talet 1, vilket tal man än börjar med. Eller kanske finns det något tal som leder till en loop som aldrig når 1? Din uppgift är nu att skriva en funktion ulam, som tar reda på, vilket startvärde i intervallet 2...1000 som kräver flest varv innan det når talet 1. Laborationsuppgift 47. Vilken siffra (2) Tänk dig att vi skriver talen 1 och uppåt på en enda lång rad 12345678910111213... Vilken siffra befinner sig då på plats 1 000 000? Laborationsuppgift 48. Summor av siffersummor (2) Talet 123 har siffersumman 1 + 2 + 3 = 6. Vilket tal får man om man summerar alla siffersummor från 1 till 2008? Laborationsuppgift 49. Den saknade sidan (2) Adam fick för sig att med hjälp av räknedosan summera alla sidnummer i matematikboken. Han fick summan 106830. Det visade sig att han hade hoppat över ett sidnummer vilket och hur många sidor hade boken? Laborationsuppgift 50. Kyrkklockorna (2) Två kyrkklockor började ringa samtidigt. Den ena slog sedan var 4 3 sekund och den andra med ett intervall på 7 4 sekunder. Hur många slag kunde man höra under 15 minuter om två slag från de båda klockorna, som låg varandra närmare 1 2 sekunder, uppfattades som ett slag? Laborationsuppgift 51. Skattkistorna (2) Tre skattkistor, A, B och C innehåller olika antal guldmynt. Skillnaden i antalet mynt i kistorna B och A är lika stor som skillnaden mellan C och B. Om man summerar antalet mynt i vilka två kistor som helst får man en heltalskvadrat. a) Vilket är det minsta antal mynt, som kan finnas i den minsta kistan? b) Vilket är det minsta totala antalet mynt som kan finnas i kistorna? Laborationsuppgift 52. Minsta största delaren (2) Vilken är den minsta, största delaren d > 1 en produkt (p 1)p(p +1) kan ha för heltal p N där p kan skrivas som n 3, är en heltalskub. Testa för n {2...100}. Och gör därefter en gissning. Laborationsuppgift 53. Antal lösningar (2) Hur många lösningar har ekvationen x 1 +x 2 +x 3 +x 4 +x 5 = 14 Håkan Strömberg 158 KTH STH
då x i N alltså även 0. Laborationsuppgift 54. Den n:te raden (2) Ta fram en formel, eller dylikt, som bestämmer den n:te raden. Här ser vi de fyra första raderna 1 = 1 2 2+3+4 = 3 2 3+4+5+6+7 = 5 2 4+5+6+7+8+9+10 = 7 2... Laborationsuppgift 55. Den n:te raden igen (3) Ta fram en formel, eller dylikt, som bestämmer den n:te raden. Här ser vi de fyra första raderna 2 2 +3 2 +4 2 +14 2 = 15 2 4 2 +5 2 +6 2 +38 2 = 39 2 6 2 +7 2 +8 2 +74 2 = 75 2 8 2 +9 2 +10 2 +122 2 = 123 2... Håkan Strömberg 159 KTH STH
7.7. MER KOMBINATORIK Dagens Teori 7.7 Mer kombinatorik 7.7.1 Duvhålsprincipen På engelska Pigeonhole Principle eller Dirichlet s Box Principle. I sin enklaste version Sats 19 Om vi har n + 1 objekt, som ska placeras i n lådor, så kommer åtminstone en låda att innehålla fler än ett objekt. Trots att sin enkelhet har denna princip en mängd överraskande tillämpningar. Exempel 65 Av tre personer är två av samma kön Bland 13 personer är åtminstone två födda samma månad 22 objekt placeras i 3 lådor. Då finns det åtminstone en låda med fler än 7 objekt. qs + 1 objekt placeras i s lådor, så finns det åtminstone en låda med fler än q objekt. Figur 7.45: I en liksidig triangel med sidan 2 cm finns 5 punkter. Avståndet mellan åtminstone två av dessa punkter är 1 cm. När a b (gcd(a,b) = 1) skrivs på decimal form, har utvecklingen en period högst b 1. Håkan Strömberg 160 KTH STH
Några lite svårare exempel Exempel 66 49 platser har arrangerats runt en cirkel. På varje plats ska en av siffrorna [0... 9] placeras. Är det möjligt att göra detta så att varje kombination av två olika siffror står intill varandra? Varje siffra måste finnas med 5 gånger runt cirkeln eftersom de ska paras samman med 9 andra siffror. Då det finns 10 siffror som alla måste förekomma 5 gånger behövs 50 platser. Svaret är alltså nej. Exempel 67 Det finns n personer i ett rum. En del har hälsat på varandra genom att ta varandra i handen. Bland dessa finns två personer som har skakat hand lika många gånger. En person kan ha skakat hand med mellan 0 och n 1 gånger. Det finns alltså lika många alternativ som det finns personer. Men nu är det så att alternativen 0 och n 1 inte kan förekomma, båda två, samtidigt. Det kan inte finnas en person, som är hälsat på alla och samtidigt en, som inte har hälsat på någon. Alltså finns det i verkligheten n 1 alternativ bland n personer. Vilket betyder att det måste finnas minst två med lika många handskakningar. Exempel 68 En schackspelare har 77 dagar på sig i förberedelse för en turnering. Han har tänkt sig spela minst ett parti om dagen, men totalt inte fler än 132 partier. Bevisa att det finns en obruten följd av dagar under vilka han spelar exakt 21 partier. Låt a i anger hur många partier han spelat under de i första dagarna. Vi får då först 77 tal Om vi adderar 21 i varje led får vi 77 tal till 1 a 1 < a 2... < a 77 132 22 a 1 +21 < a 2 +21... < a 77 +21 153 Bland dessa 77 + 77 = 154 måste det finnas två som är lika eftersom de alla är heltal i intervallet 1...153. Ett av dem finns bland de 77 första och det andra bland de 77 sista. Alltså finns det ett i och j så att a i = a j +21 som ger a i a j = 21. Han har alltså spelat 21 partier mellan dag j+1 och i. Exempel 69 Vi har n 3, inte nödvändigtvis olika, heltal a 1,a 2,...,a n. Det finns då alltid en delmängd av dessa tal vars summa är delbar med n. Vi bildar först summorna s 1 = a 1, s 2 = a 1 +a 2, s 3 = a 1 +a 2 +a 3,...,s n = a 1 +a 2 +...+a n Om någon av dessa summor är delbar med n är vi klara. Annars får vi vid divisionen rester s 1 r 1 ( mod n), s 2 r 2 ( mod n),...,s n r n ( mod n) Om två rester, r i och r j är lika så måste n s j s i och därmed har vi funnit en eftersökt delmängd. Men eftersom man bara kan få n 1 rester 0 så finns det alltid två r som är lika och därmed en summa som är delbar med n. Ett exempel: Välj talen {2,5,6}, n = 3. Vi får då s 1 = 2, s 2 = 2+5 = 7, s 3 = 2+5+6 = 13 Håkan Strömberg 161 KTH STH
7.7. MER KOMBINATORIK Ingen av s i har 3 som delare. Vi bildar nu resterna 2 2( mod 3), 7 1( mod 3), 13 1( mod 3) De två sista resterna är lika, alltså är 3 s 3 s 2 = 6 7.7.2 Inklusion Exklusion Medräkna och utesluta. Sats 20 Vi har två mängder A och B med A respektive B objekt. När kan vi säga att A + B = A B? När A B =, när de två mängderna är disjunkta. Allmänt gäller denna formel A + B A B = A B När vi adderar de två talen A och B tar vi ju med A B två gånger. För tre mängder A,B och C får vi A B C = A + B + C A B A C B C + A B C Satsen kan generaliseras till n mängder. Exempel 70 Av 50 personer, äger 23 en Volvo 25 en Saab och 10 har ingen bil alls. Hur många har både en Volvo och en Saab? Det finns 50 10 = 40 bilägare, med en eller flera bilar, som ger V S = 40. Vi antar att det finns x personer som har både Volvo och Saab och får nu genom ekvationen V S = V + S V S 40 = 23+25 x x = 8. 8 personer har både Volvo och Saab. Exempel 71 På DP går 100 studenter. 50 studenter klarade tentamen i Diskret matematik. 40 studenter klarade tentamen i Grundläggande programmering. Endast 20 studenter klarade båda tentorna. Hur många studenter klarade ingen tenta? Lösning: Vi utgår från och får A B = A + B A B A B = 50+40 20 = 70 Svaret får vi genom U A B = 100 70 = 30 Håkan Strömberg 162 KTH STH
Exempel 72 Hur många tal 70 är relativt prima till 70? Lösning: Vi låter U = {1...70}. Vi startar med att faktorisera 70 = 7 5 2. A 1 är mängden av tal t där 2 t. Vi ser att A 1 = 35. A 2 är mängden av tal t där 5 t. Vi får A 2 = 14. På samma sätt ser vi att A 3 = 10 då A 3 är mängden av tal t så att 7 t. Vi kan nu också bestämma att A 1 A 2 = 70/10 = 7, A 2 A 3 = 70/35 = 2 och A 1 A 3 = 70/14 = 5. Till sist ser vi att A 1 A 2 A 3 = 70/70 = 1. Vi kan nu bestämma det önskade antalet A 1 A 2 A 3 = 70 (35+14+10)+(7+2+5) 1 = 24 7.7.3 Stirlingtal av andra slaget Antalet sätt att dela upp n olika objekt i k delmängder. Vi skriver detta tal { } n k Figur 7.46: För att bestämma { 4 2} går vi in på fjärde raden i tabellen nedan och söker upp det andra talet, 7. Man kan alltså dela upp 4 objekt på 2 delmängder på 7 sätt, se figur 7.46, där varje kolumn i de sju grupperna utgör en delmängd. 1 1 1 1 3 1 1 7 6 1 1 15 25 10 1 1 31 90 65 15 1 Om man nu vill bestämma nästa rad i tabellen ovan, finns det då någon metod, motsvarande den för Pascals triangel? Ja, men aningen mer komplicerad { } { } { } n+1 n n = k + k k k 1 Håkan Strömberg 163 KTH STH
7.7. MER KOMBINATORIK Med följande rekursiva program i C kan man bestämma stirlingtal av andra slaget. 1 #include <stdio.h> 2 int stirling(int n,int m){ 3 if(n==0 && m==0) 4 return 1; 5 if(m==0) 6 return 0; 7 if(m==1) 8 return 1; 9 if(n==m) 10 return 1; 11 return m*stirling(n-1,m)+stirling(n-1,m-1); 12 } 13 int main(void){ 14 printf("%d\n",stirling(12,4)); 15 } 7.7.4 Bell tal Vi förstår att { } n = 1 1 Det finns bara ett sätt att dela upp n objekt i en delmängd. På samma sätt finns det bara ett sätt att dela upp n objekt på n olika delmängder. { } n = 1 n Betraktar vi fallet då n = 4 har vi nu redan { } { } 4 4 = 1 = 7 1 2 { } 4 = 1 4 Figur 7.47: Från figur 7.47 kan vi utläsa { 4 3} = 6 Den fjärde raden i stirling-tabellen är 1,7,6,1 När vi adderar dessa tal får vi 15, som är alla möjligheter att dela upp 4 objekt i delmängder. Bell number 4 är 15, vi skriver B 4 = 15. B n är alltså summan av talen på den n:e raden i triangeln med Stirlingtal av andra slaget Här följer de första 6 Bell-talen: B 1 = 1 B 2 = 2 B 3 = 5 B 4 = 15 B 5 = 52 B 6 = 203 Håkan Strömberg 164 KTH STH
7.7.5 Att placera objekt i fack Här ska vi placera n objekt i k fack Objekten och facken kan var antingen lika eller olika. A Olika objekt i olika fack. n i objekt i det i:e facket. ( n n 1,n 2,...,n k ) B Olika objekt i olika fack. Fack kan vara tomma k n C Olika objekt i olika fack. Inget fack får vara tomt k! { n} D E F G Lika objekt i olika fack. Fack kan vara tomt Lika objekt i olika fack. Fack kan inte vara tomt Olika objekt i lika fack. Fack kan vara tomt Olika objekt i lika fack. Fack kan inte vara tomt k ( n+k 1 n ( n 1 ) k 1 k i=1 { n k} ) { n i} Exempel 73 På hur många sätt kan vi placera 12 objekt i 4 fack om a) Objekten är olika. Facken är olika. Facken kan vara tomma. b) Objekten är olika. Facken är olika. Facken kan inte vara tomma. c) Objekten är lika. Facken är olika. Facken kan vara tomma. d) Objekten är lika. Facken är olika. Facken kan inte vara tomma. e) Objekten är olika. Facken lika. Facken kan vara tomma. f) Objekten är olika. Facken lika. Facken kan inte vara vara tomma. Lösning: a) k n ger 4 12 = 16777216 b) k! { n} { k ger 4! 12 4} = 14676024 c) ( n+k 1) ( n ger 15 12) = 455 d) ( ( n 1 k 1) ger 11 3) = 165 e) k i=1{ n i} ger 4 i=1 f) { n k} ger { 12 4} = 611501 { 12 i} = 700075 7.7.6 Lite om genererande funktioner Exempel 74 På hur många sätt kan man fördela 8 äpplen bland 3 barn, om varje barn ska ha 2 äpplen 4? Lösning: Två exempel på vilka äpplena kan fördelas: (3,3,2) och (2,2,4). För att få svaret utvecklar man (x 2 +x 3 +x 4 ) 3 = x 6 +3x 7 +6x 8 +7x 9 +6x 10 +3x 12 +x 12 Håkan Strömberg 165 KTH STH
7.7. MER KOMBINATORIK Koefficienten 6 framför x 8 ger svaret, nämligen: (4,2,2),(2,4,2),(2,2,4),(3,3,2),(3,2,3),(2,3,3) Ur utvecklingen kan vi till exempel förstå att 6 äpplen kan fördelas på endast ett sätt, (2,2,2). Vilka är de 7 sätten att fördela 9 äpplen. För att utveckla ett uttryck liknande det ovan skriver man i Mathematica Expand[(x^2+x^3+x^4)^3] Det hela handlar ju om att ta reda på samtliga lösningar till x 1 + x 2 + x 3 = 8, då 2 x 1,x 2,x 3 4. Vi kan lösa detta med följande C-program: 1 #include <stdio.h> 2 int main(void){ 3 int x1,x2,x3; 4 for(x1=2;x1<=4;x1++) 5 for(x2=2;x2<=4;x2++) 6 for(x3=2;x3<=4;x3++) 7 if(x1+x2+x3==8) 8 printf("[%d,%d,%d]\n",x1,x2,x3); 9 } Exempel 75 En urna innehåller kulor, i tre färger, röda, blå och svarta. Det finns minst 10 kulor i av varje färg och kulor med samma färg betraktas som identiska. Vi söker antalet möjligheter att välja ut 10 kulor så att vi får ett udda antal röda kulor ett jämnt antal blå kulor åtminstone 5 svarta kulor Lösning: Antag att x 1,x 2,x 3 motsvarar antalet valda röda, blåa respektive svarta kulor. Svaret får vi genom att bestämma antalet lösningar x 1 +x 2 +x 3 = 10, där x 1 är udda x 2 är jämnt och x 3 5. Svaret erhålles som koefficienten till x 10 i funktionen f(x) = (x+x 3 +x 5 +x 7 +x 9 )(x 0 +x 2 +x 4 +x 6 +x 8 +x 10 )(x 5 +x 6 +x 7 +x 8 +x 9 +x 10 ) Expand[(x+x^3+x^5+x^7+x^9) (x^0+x^2+x^4+x^6+x^8+x^10) (x^5+x^6+x^7+x^8+x^9+x^10)] ger x 6 +x 7 +3x 8 +3x 9 +6x 10 +6x 11 +9x 12 +9x 13 + +12x 14 +12x 15 +14x 16 +14x 17 +14x 18 +14x 19 + +12x 20 +12x 21 +9x 22 +9x 23 +6x 24 +6x 25 +3x 26 + +3x 27 +x 28 +x 29 Med hjälp av Mathematica får vi svaret 6. C-programmet nedan ger också svaret Håkan Strömberg 166 KTH STH
1 #include <stdio.h> 2 int main(void){ 3 int x1,x2,x3; 4 for(x1=1;x1<=9;x1=x1+2) 5 for(x2=0;x2<=10;x2=x2+2) 6 for(x3=5;x3<=10;x3++) 7 if(x1+x2+x3==10) 8 printf("[%d,%d,%d]\n",x1,x2,x3); 9 } Exempel 76 Hattar på krogen. n,n = 1...7 herrar har varit på krogen. På hemvägen, när de passerar garderoben, får de slumpmässigt en av de n hattarna, som de lämnade in när de kom. Hur många sätt finns det att lämna tillbaka hattarna, så att ingen fick sin egen hatt? Lösning: Vi söker antalet dearangements D n av de sju hattarna. Det vill säga antalet permutationer av talen 1,2,3,...,n så att inget av talen hamnar på sin ursprungliga plats. Följande formel ger svaret ( D n = n! 1 1 1 ) 1! +...+( 1)n n! Lite vackrare uttryckt Specifikt för vårt problem D 7 = 7! D n = n! n ( 1) i i=0 ( 1 1 1! + 2 2! 3 3! + 4 4! 5 5! + 6 6! 7 ) 7! i! Tror man på formeln beräknar detta C-program D n 1 #include <stdio.h> 2 int main(void){ 3 int n=7,nf=1,t=1,p=1,dn,i; 4 for(i=2;i<=n;i++) 5 nf=nf*i; 6 dn=nf; 7 for(i=1;i<=n;i++){ 8 p=p*i; 9 t=-t; 10 dn=dn+t*nf/p; 11 } 12 printf("%d",dn); 13 } För att experimentera med permutationerna f[n_] := Block[{m, s = 0, i, p, ok, j}, m = Permutations[Range[n]]; For[i = 1, i <= Length[m], i++, p = m[[i]]; Håkan Strömberg 167 KTH STH
7.7. MER KOMBINATORIK ] ok = True; j = 1; While[ok && j <= n, ok = j!= p[[j]]; j++; ]; If[ok, s++; ]; ]; s Table[f[i],{i,7}] Med utskriften 0,1,2,9,44,265,1854 7.7.7 Att räkna pokerhänder Exempel 77 I poker finns följande händer: Royal Straight Flush (Ess, Kung, Dam, Knekt, 10 i samma färg) Straight Flush (Fem kort i följd i samma färg utom Royal Straight Flush) Fyrtal (Fyra kort med samma valör och ett annat kort, vilket som helst) Kåk (Tre kort av samma valör, samt två kort av en annan) Flush (Fem kort i samma färg, men inte Royal Straight Flush eller Straight Flush) Straight (Fem kort i följd, men inte i samma färg) Triss (Tre kort i samma valör och två kort i två andra valörer) Två par (Två kort i samma valör och två kort i en annan valör samt ett kort i en tredje) Ett par (Två kort i samma valör och tre kort från tre andra valörer) Bestäm antalet kort hos var och en av dessa händer. Hur många händer tillhör ingen av dessa nio? Lösning: Royal Straight Flush (Ess, Kung, Dam, Knekt, 10 i samma färg) ( ) 4 1 = 4 1 4 olika färger med en Royal Straight Flush i varje Håkan Strömberg 168 KTH STH
Straight Flush (Fem kort i följd i samma färg utom Royal Straight Flush) ( ) 4 9 = 36 1 4 färger att välja bland. I varje färg finns 9 Straights Fyrtal (Fyra kort med samma valör och ett annat kort, vilket som helst) ( ) ( ) 13 48 = 624 1 1 13 valörer att välja på. 48 möjligheter att välja det 5:e kortet. Kåk (Tre kort av samma valör, samt två kort av en annan) ( )( )( )( ) 13 4 12 4 = 3744 1 3 1 2 13 valörer att välja på 4 möjligheter att välja ut tre kort i denna valör. 12 valörer att välja på 6 möjligheter att välja ut två kort i denna valör. Flush (Fem kort i samma färg, men inte Royal Straight Flush eller Straight Flush) ( )( ) ( ) 4 13 4 10 = 5108 1 5 1 4 färger att välja bland, 1287 sätt att välja ut fem kort från denna färg, minus de 40 händer som är Royal Straight Flush eller Straight Flush. Straight (Fem kort i följd, men inte i samma färg) ( ) 4 10 4 5 10 = 10200 1 10 möjligheter att bilda fem kort i rad. 1024 möjligheter att välja de fem korten, minus de 40 händer som är Royal Straight Flush eller Straight Flush. Triss (Tre kort i samma valör och två kort i två andra valörer) ( )( )( ) 13 4 12 4 2 = 54912 1 3 2 13 valörer att välja på. 4 sätt att välja tre kort från denna valör. 66 möjligheter att välja två olika valörer. 16 möjligheter att välja två kort från dessa. Två par (Två kort i samma valör och två kort i en annan valör samt ett kort i en tredje) ( ) ( ) ( ) 13 4 4 44 = 123552 2 2 2 78 möjligheter att välja ut två olika valörer. 6 möjligheter att välja två kort från den ena valören och 6 möjligheter från den andra. 44 möjligheter att välja det femte kortet. Ett par (Två kort i samma valör och tre kort från tre andra valörer) ( )( )( ) 13 4 12 4 3 = 1098240 1 2 3 13 möjligheter att välja ut en valör. 6 möjligheter att välja två kort från denna valör. 220 möjligheter att välja ut tre olika valörer. 64 möjligheter att välja ut ett kort från var och en av dessa tre valörer. Håkan Strömberg 169 KTH STH
7.7. MER KOMBINATORIK Det finns ( 52 5) = 2598960 olika pokerhänder 2598960 (4+36+624+3744+5108+10200+54912+123552+1098240) = 1302540 1302540 händer tillhör ingen av de i listan. Håkan Strömberg 170 KTH STH
Mathematica I Mathematica kan vi direkt få fram stirlingtal av andra slaget och även belltalen Talet 6174 StirlingS2[4, 2] 7 Sum[StirlingS2[4, i], {i, 1, 4}] 15 BellB[4] 15 BellB[50] 185724268771078270438257767181908917499221852770 Vi startar med talet 4567, vi sorterar siffrorna i fallande och stigande ordning och får de två talen 7654 och 4567. Vi subtraherar det större från det mindre, 7654 4567 = 3087. Vi utför samma procedur med detta tal, 8730 0378 = 8352. En gång till, 8532 2358 = 6174. Nedan följer ett Mathematica-program som visar att för alla fyrsiffriga tal (utom de där de fyra siffrorna är lika) kommer för eller senare att nå 6174. Programmet avslutas med ett diagram som visar frekvenserna. f[n_] := Block[{T1, T2, t1, t2, i = 0, t = n}, If[Length[Union[IntegerDigits[n]]] == 1, Return[0] ]; While[t!= 6174, T1 = Sort[IntegerDigits[t], Greater ]; T2 = Sort[IntegerDigits[t], Less]; t1 = FromDigits[T1]; t2 = FromDigits[T2]; t = t1 - t2; If[t < 1000, t = 10 t; ] i++; ]; i ] Håkan Strömberg 171 KTH STH
7.7. MER KOMBINATORIK g[] := Block[{i}, tab = Table[0, {i, 0, 10}]; For[i = 1000, i <= 9999, i++, tab[[f[i] + 1]]++; ]; BarChart[tab] ] Figur 7.48: Håkan Strömberg 172 KTH STH
Teoriuppgifter Problem 117 Hur många sätt kan man ge två kort från en kortlek, så att det första är ett ess och det andra inte är en dam? Problem 118 På hur många sätt kan man från n par välja ut en man och en kvinna som inte tillhör samma par? Problem 119 Bengt har 10 fickor och 44 enkronor. Han vill fördela dessa kronor så att varje ficka innehåller olika antal kronor. Kan han göra det? Problem 120 När fotbollsligan utökades med ett antal lag ökade antalet matcher som måste spelas med 52. Hur många lag fanns det i ligan före och efter utökningen? När en fotbollsliga genomförs möter varje lag varje annat två gånger. Problem 121 Bestäm A B C då man vet att A = 10, B = 15, C = 13, A B = 5, A C = 6, B C = 4, A B C = 2. Problem 122 Beräkna den 5:e raden i triangeln av Stirlingtal av andra ordningen. Bestäm B 5 Problem 123 Hur många av alla delmängder till M = {1,2,...10} innehåller åtminstone ett udda tal? Problem 124 På dansrestauranten finns 4 herrar och 6 damer. Varje herre bjuder upp varsin dam. På hur många sätt kan detta göras? Problem 125 Hur många 12 bitar långa strängar med 0:or 1:or finns det om två 0:or aldrig får finnas intill varandra och det måste finnas exakt 8 stycken 1:or? Problem 126 I en låda finns 3 blåa, 3 röda och 4 gröna sockor. 8 strumpor dras ur lådan, en i taget. På hur många sätt kan detta göras? (Strumpor av samma färg anses lika). Håkan Strömberg 173 KTH STH
7.7. MER KOMBINATORIK Problem 127 Vi har 20 parvis olika positiva heltal alla < 70. Visa att bland alla differenser mellan två tal som kan bildas så finns det en differens som som förekommer minst 4 gånger. Problem 128 En kommitté ska väljas från 7 kvinnor och 4 män. På hur många sätt kan detta göras om a) kommittén ska bestå av 5 personer, 3 kvinnor och 2 män. b) kommittén ska bestå lika många män som kvinnor c) kommittén ska bestå av 4 personer inklusive Adam. d) kommittén ska bestå av 4 personer, 2 män och 2 kvinnor, men inte både Anna och Adam. Problem 129 I figuren ser vi att det går fyra vägar mellan A och B, tre vägar mellan B och C samt två vägar mellan A och C. a) På hur många olika sätt kan man ta sig från A till C. A och C får bara besökas en gång. I A får man bara befinna sig då resan startar och avslutas. I C får man bara befinna sig en gång. b) På hur många olika sätt kan man ta sig från A till C och tillbaka till A igen. En väg får användas en gång i varje riktning. I A får man bara befinna sig då resan startar och avslutas. I C får man bara befinna sig en gång. c) På hur många olika sätt kan man ta sig från A till C och tillbaka till A igen och besöka B minst en gång. En väg får användas en gång i varje riktning. I A får man bara befinna sig då resan startar och avslutas. I C får man bara befinna sig en gång. d) På hur många olika sätt kan man ta sig från A till C och tillbaka till A igen. En väg får användas endast en gång oavsett riktning. I A får man bara befinna sig då resan startar och avslutas. I C får man bara befinna sig en gång. Problem 130 Hur många olika strängar kan åstadkommas med som mest 3 A och 5 B? Vi tar inte med den tomma strängen. Håkan Strömberg 174 KTH STH
Problemlösning Problemlösning 48. Slalompjäxor (2) Årets julklapp var slalompjäxor, förpackade i märkliga, vinkelformade paket. Du ser ett Figur 7.49: nere till höger i figur 7.49. Tomtenissarna har fått i uppgift att packa ner sju pjäxpaket i var och en av de tre lådorna, där det redan finns ett eller annat paket som de inte får flytta på. Kan du hjälpa dem? Problemlösning 49. Vad är klockan (2) Adams moraklocka har stannat och han har ingen annan klocka som kan hjälpa honom att ställa den. Därför beger han sig genom skogen till Bertil, vars klocka går korrekt. Han stannar där en stund och beger sig sedan hemåt. Denna promenad tar lika lång tid som den i andra riktningen. När han kommer hem kan han ställa klockan korrekt. Detta trots att han inte vet hur lång tid själva promenaderna tog. Förklara hur! Problemlösning 50. Strumpor och handskar (2) Hur många strumpor måste man i blindo ta ur en låda, som innehåller 11 blå och 20 röda, för att vara säker på att få ett enfärgat par? Vi utvidgar problemet till röda och blå handskar. I lådan finns 11 par blå handskar och 20 par röda. Skillnaden är alltså nu, att det finns vänster- och högerhandskar och att vi vill få ett fungerande par i samma färg. Hur många måste vi plocka. Vi återvänder till lådan med 11 blå och 20 röda strumpor. Hur många strumpor måste vi plocka för att få två matchande par? Hur många strumpor måste vi plocka för att få två olikfärgade par? Håkan Strömberg 175 KTH STH
7.7. MER KOMBINATORIK Problemlösning 51. Tändstickskvadrat (2) Figur 7.50: För att bygga en 2 2 kvadrat, som i figur 7.50, av tändstickor behövs det 12 stickor. Konstruera en formel med vars hjälp man direkt kan räkna ut antalet stickor, det behövs, för att skapa en n n kvadrat av samma typ. Problemlösning 52. Gudsdyrkan (2) Det bor 100 människor på en liten ö. En del av dem talar alltid sanning och andra ljuger alltid. Varje människa tillber en av tre gudar. Antingen månguden, solguden eller jordguden. En missionär ställde följande tre frågor till de 100 invånarna: Tillber du månguden? (60) Tillber du solguden? (40) Tillber du jordguden? (30) Efter frågan finns antalet ja-svar missionären fick in. Hur många utav människorna på ön talar alltid sanning? Problemlösning 53. Svart och vitt (2) Figur 7.51: Varje kvadrat i rutmönstret i figur 7.51 ska innehålla antingen en svart eller en vit bricka. När mönstret fyllts i korrekt, så finns det en enda förbunden grupp av vita brickor och en förbunden grupp av svarta brickor. Brickorna kan endast förbindas horisontellt eller vertikalt (ej diagonalt). Ingenstans får det finnas en 2 2 grupp brickor av samma färg. Håkan Strömberg 176 KTH STH
Problemlösning 54. Överfärden (2) Adam, Bertil, Curt och David ska ta sig över en flod med hjälp av en roddbåt. Båten kan högst ta två passagerare. Herrarna ror olika fort (samma tid i båda riktningarna) och det är alltid den som ror långsammast som sitter vid årorna! Adam Bertil Curt david 6 min 7 min 9 min 10 min Hur lång tid tar det för sällskapet att ta sig över floden? Problemlösning 55. Master Mind (2) Målet är att gissa en kod bestående av fyra bokstäver hämtade ur A,B,C,D,E och F. Samma bokstav kan förekomma flera gånger i koden. Spelaren gissar genom att ange en kod. Spelledaren svarar med att ange hur många av bokstäverna i den gissade koden om är på rätt plats. Man får ett + för varje. Dessutom markeras varje bokstav som finns med men inte är på rätt plats med. I uppgifterna nedan kan man lista ut vilka de rätta koderna är genom tidigare gjorda gissningar. Det finns bara en. 1 3 5 7 F F B B + + E C F B - A B D C + - B E C E - A B A A - A B A B - A B F F - A C A D + F A F D + + - C C D C - - E E D C + C F B A + + + A A A C + 2 4 6 8 F C D A - F F D B - D A D F - A E D B + B E F A - - D A F D B C A B - - - B B B E + + - D F D B + + - - C A D E + B B A D + - B E E D + + B B E F + - - - Problemlösning 56. Bollar i lådor (3) Som trollkarl ber du någon i publiken att välja ett tal 1...24 och därefter väljer du ut Figur 7.52: 1...5 lådor som alla ligger i en obruten rad. Du visar sedan att antalet kulor som finns i de utvalda lådorna är lika med det tal publiken valde. Visa hur du i förväg ska placera kulorna i de 7 lådorna, så att det, vilket tal publiken än väljer, finns en lösning summan kan bildas. Håkan Strömberg 177 KTH STH
7.7. MER KOMBINATORIK Problemlösning 57. Två färjor (2) Två färjor startar i samma ögonblick från motsatta färjelägen på Hudsonfloden. En färja lämnar New York för färd mot Jersey och den andra lämnar Jersy på väg mot New York. Den ena färjan går snabbare, så de möts 720 meter från närmaste strand. När de når målet stannar båda färjorna i 10 minuter för att släppa av och på passagerare. Därefter startar de återresan. Denna gång möts färjorna 400 meter från den andra stranden. Exakt hur bred är floden? Samuel Loyd, alla tiders största konstruktör av tankenötter, påstod i samband med att han publicerade detta problem, att 99 av 100 välutbildade affärsmän skulle misslyckas med att lösa detta problem, om de så fick en vecka på sig att lösa det. Han menade att det är priset man får betala om man lär sig matematik regelmässigt istället för att använda sunt förnuft. Vad han inte berättade var att en av passagerarna råkade missa landgången och hamnade i vattnet. Det visade sig att han var färjblind. Problemlösning 58. Hur gammal är prästen? (3) Prästen sa till klockaren Idag var det tre personer, förutom oss, i kyrkan. Produkten av deras åldrar var 2450 och summan var två gånger din ålder. Kan du säga mig hur gamla de var? Klockaren som var duktig i huvudräkning, tänkte efter och sa: Nej det kan jag inte. Om jag säger att jag var äldst i kyrkan idag, kan du då lösa problemet? Det kunde klockaren. Kan du? Problemlösning 59. Vem äger zebran?(3) Detta är ett klassiskt problem, som kräver en del tankearbete. Det ligger fem hus på rad (i östvästlig riktning). Alla husen har olika färg. Ägarna är av olika nationalitet, äger olika sällskapsdjur, röker olika cigarettmärken och har olika favoritdrinkar. 1 Engelsmannen bor i det röda huset 2 Spanjoren äger en hund 3 Mannen i det gröna huset dricker kaffe 4 Mannen från Ukraina dricker te 5 Det gröna huset ligger direkt öster om det svarta 6 Mannen som röker Old Gold äger sniglar 7 Cigaretten Kool röks i gula huset 8 Mjölk dricks i det mittersta huset 9 Norrmannen bor i huset längst väster ut 10 Mannen som röker Chesterfields bor i huset näst intill mannen som har en räv 11 Kool röks i huset i huset intill det där det finns en häst som husdjur 12 Mannen som röker Lucky Strike dricker också apelsinjuice 13 Japanen röker John Silver 14 Norrmannen bor bredvid de blå huset Vem dricker vatten? Vem har en zebra som husdjur? Håkan Strömberg 178 KTH STH
Lösningar Teoriuppgifter Lösning Teoriuppgift 117 4 47 = 188 Lösning Teoriuppgift 118 Mannen kan väljas på n sätt och kvinnan på n 1. Totalt alltså n(n 1) Lösning Teoriuppgift 119 Eftersom 0+1+2+3+4+5+6+7+8+9 = 45 är uppdelningen omöjlig Lösning Teoriuppgift 120 I årets allsvenska finns 16 lag. Om varje lag ska möta varje annat lag en gång ger det 16 15 2 = 120. Nu möter de varandra två gånger vilket betyder att det ska spelas 240 matcher. Om vi antar att en annan liga hade x lag så spelades x(x 1) matcher i den ligan. När den utökades med a lag spelades istället (x+a)(x +a 1) matcher. Skillnaden mellan dessa två antal ger den diofantiska ekvationen Med hjälp av Mathematica får vi (x+a)(x+a 1) x(x 1) = 52 Reduce[{(x+a)*(x+a-1)-x*(x-1)==52,x>0,a>0}, Integers] Det finns två godtagbara lösningar x = 26, a = 1 och x = 5, a = 4 Lösning Teoriuppgift 121 A B C = 10+15+13 5 6 4+2 = 25 Lösning Teoriuppgift 122 1,15,25,10,1 Håkan Strömberg 179 KTH STH
7.7. MER KOMBINATORIK Lösning Teoriuppgift 123 Det finns total 2 10 = 1024 delmängder. Det finns 2 5 = 32 delmängder med enbart jämna tal. Det finns då 2 10 2 5 = 992 delmängder med minst ett udda tal. Lösning Teoriuppgift 124 Den första herren har 6 damer att välja bland. Den andra 5 och så vidare 6 5 4 3 = 360 Lösning Teoriuppgift 125 Totalt finns det ( ) 12 = 4 ( ) 12 = 495 8 olika strängar med 8 1:or och 4 stycken 0:or, men många av dem är ogiltiga Vi startar med att placera ut de 8 1:orna..1.1.1.1.1.1.1.1. De 9 punkterna markerar platser där man kan placera en 0:a Vi ska placera ut 4 stycken. ( ) 9 = 126 4 Lösning Teoriuppgift 126 Length[Permutations[{1,1,1,2,2,2,3,3,3,3},{8}]] 2660 Lösning Teoriuppgift 127 Beteckna de 20 heltalen a 1...a 20. Vi kan ordna dem 0 < a 1 < a 2 < a 3... < a 19 < a 20 < 70 Vi vill bevisa att att det finns ett k, så att a j a i = k har åtminstone fyra lösningar. Vi skriver 0 < (a 2 a 1 )+(a 3 a 2 )+...+(a 20 a 19 ) = a 20 a 1 68 Skillnaden mellan det största och det minsta talet är 68 Vi ska nu visa att bland a i+1 a i, i = 1...19 finns fyra med samma differens. Vi antar att det högst finns 3 med lika differens. Vi får då 3 1+3 2+3 3+3 4+3 5+3 6+7 68 Håkan Strömberg 180 KTH STH
Tätare en så kan vi inte packa dem, men vänstra ledet ovan är lika med 70. 70 68 är en motsägelse alltså måste någon differens förekomma fler än 3 gånger! Lösning Teoriuppgift 128 a) ( )( ) 7 4 = 210 3 2 b) (1,1),(2,2),(3,3),(4,4) 4 c) ( )( ) 1 10 = 120 1 3 d) ( )( )( )( ) 1 1 3 6 + 0 0 2 2 ( 1 1 )( )( )( ) 1 3 6 + 0 1 2 Med hjälp av Mathematica får vi i sista exemplet: ( 1 0 )( )( )( ) 1 3 6 = 108 1 2 1 h[] := Block[{alla, i, j, n, svar = {}}, alla = KSubsets[Range[11], 4]; For[i = 1, i <= Length[alla], i++, m = alla[[i]]; n = 0; For[j = 1, j <= Length[m], j++, If[m[[j]] >= 1 && m[[j]] <= 4, n++; ] ]; If[! (MemberQ[m, 1] && MemberQ[m, 5]) && n == 2, AppendTo[svar, m] ] ]; Length[svar] ] 3 KSubsets genererar alla ( 11 4) listor som består av 4 av de 11 personerna som är numrerade 1...11. Vi bestämmer att Adam har nummer 1, att 1...4 är män, att Anna har nummer 5 och att 5...11 alla är kvinnor. 5 Vi går nu igenom alla listor som finns i alla. 6-10 Först räknar vi hur många män det finns i listan m. 11-13 Här testar vi att inte både Adam och Anna finns med och att det finns 2 män (medför att det finns 2 kvinnor). Håkan Strömberg 181 KTH STH
7.7. MER KOMBINATORIK Lösning Teoriuppgift 129 a) 4 3+2 = 14 b) (4 3+2) 2 = 196 c) (4 3+2) 2 4 = 192 d) 2(4 3)+2(4 3)+2+(4 3)(3 2) = 122 Lösning Teoriuppgift 130 Lösning: Vi delar in problemet i tre delar efter strängens längd, 1 3, 4 5 och 6 8. I den första delen är får vi 2+4+8 = 14 eller 2 1 +2 2 +2 3. I den andra delen räcker inte A till för att fylla hela strängen. Vi får för n = 4 2 4 ( 5 0) = 15 och för n = 5 2 5 ( ( 5 ( 0) + 5 1) ) = 26 I den tredje delen räcker heller inte B till för att fylla hela strängen. För n = 6 kan vi ( ha följande antal A respektive B: (5B,1A),(4B,2A),(3B,3A) Med dessa kan vi bilda 6 ) ( 1 + 6 ) ( 2 + 6 ) 3 = 41 För n = 7 kan vi ha följande antal A respektive B: (5B,2A),(4B,3A). Med dessa kan vi bilda ( 7 ( 2) + 7 3) = 56. Så till sist för n = 8 använder vi alla tecknen och får ( 8 3) = 56 Totalt har vi då 2+4+8+15+26+41+56+56 = 208 Med hjälp av Mathematica och brutal kraft kan vi gå igen alla permutationerna f[]:=block[{i,l={a,a,a,b,b,b,b,b},n=0}, For[i = 1, i <= 8, i++, n = n + Length[Permutations[l, {i}]]; ]; n ] och få också svaret 208 Betraktar vi Pascals triangel får vi ( 1 0 ( 0 ) 0) ( 1 1) ( 2 ) ( 2 ) ( 2 0 1 2) ( 3 ) ( 3 ) ( 3 ) ( 3 0 1 2 3) ( 4 ) ( 4 ) ( 4 ) ( 4 ) ( 4 0 1 2 3 4) ( 5 ) ( 5 ) ( 5 ) ( 5 ) ( 5 ) ( 5 ( 0 1 2 3 4 5) 6 ) ( 6 ) ( 6 ) ( 6 ) ( 6 ) ( 6 ) ( 6 0 1 2 3 4 5 6) ( 7 ) ( 7 ) ( 7 ) ( 7 ) ( 7 ) ( 7 ) ( 7 0 1 2 3 4 5 6 ( 8 ) ( 8 ) ( 8 ) ( 8 ) ( 8 ) ( 8 ) ( 8 ) ( 8 0 1 2 3 4 5 6 7 ) ( 7 7) ) ( 8 8) Håkan Strömberg 182 KTH STH
För ( a b) anger a strängens längd och b antalet B i strängen. De understrukna binomialkoefficienterna är de vars summa blir 208. Laboration Laborationsuppgift 56. Olympiaringarna (2) I de fem olympiaringarna har placerats siffrorna 1...9, så att summan av talen inom varje Figur 7.53: ring blivit 11. Finns det någon annan möjlighet att placera samma siffror (en i varje område), så att man får en annan gemensam summa? Laborationsuppgift 57. Goda primtal (2) Ett gott primtal p n (med ordningsnumret n > 1) är ett primtal sådant att p 2 n > p n 1 p n+1. Till exempel är det 10:e primtalet p 10 = 29 och p 9 = 23 respektive p 11 = 31. Eftersom 29 2 > 23 31 är 29 ett gott primtal. Hur många goda primtal, < 5000 finns det? Laborationsuppgift 58. Vänskapliga tal (2) Två tal, a i och a j kallas vänskapliga om σ(m) = σ(n) = m +n, där σ(n) är summan av alla delare x n. 1000-tals sådana par, (m, n), är kända, bland annat förstås de minsta, som redan omnämns i bibeln. Vilka är de? Laborationsuppgift 59. Primtal av typen p 1( mod 4) För ett primtal p > 2 måste antigen p 1( mod 4) eller p 3( mod 4) gälla. Till exempel 7 3( mod 4) och 17 1( mod 4). Vilken är den längsta följd av primtal, bland de 5000 första, sådan att samtliga primtal i följden är av typen p 1( mod 4). Ge en lista av denna följd som svar. Laborationsuppgift 60. Burrleken (2) En känd matematiklek i lågstadiet går ut på att undvika säga tal n i vilken siffran x ingår eller där x n. I stället nämner man ordet burr. Om x = 3, låter talen så här: 1, 2, burr, burr, 4, 5, burr, 7, 8, burr, 10, 11, burr, burr, 14. Skriv en funktion som tar emot uppgift om den valda siffran x = 1...9 och som skriver ut talen från 1 till 100. Håkan Strömberg 183 KTH STH
7.7. MER KOMBINATORIK Laborationsuppgift 61. Jämna binomialkoefficienter (2) Hur kan man uttrycka de naturliga tal n, för vilka ( ) ( ) ( ) ( ) n n n n,,,..., 1 2 3 n 1 alla är jämna tal? Du behöver inte bevisa ditt påstående! Laborationsuppgift 62. Boolskt uttryck (2) A, B, C och D är boolska variabler. För vilka uppstättningar av dessa är följande uttryck sant: ((A B) (C D)) D) Laborationsuppgift 63. Siffersumma av heltalskvadrater (2) Vilken siffersumma är vanligast bland femsiffriga heltalskvadrater och hur många heltalskvadrater har denna siffersumma? Laborationsuppgift 64. Stirlingtal (2) Generera en lista med { n 2} för n = 2...10 och gör ett uttalande om dessa tal. Laborationsuppgift 65. Vilka B n är primtal? (2) Skriv en, säger en, rad i Mathematica som skapar en lista av de belltal B n, n = 1...50 som är primtal Laborationsuppgift 66. När är jag född? (2) 1492 var det år då Columbus upptäckte Amerika. 1770 var det år då Ludwig van Beetoven föddes. 1863 var det år då KTH s kända tidning Blandaren, kom ut för först gången. a är det år då KTH Haninge, blir världens ledande tekniska högskola (kommer att ske före 2200) b är mitt födelseår. Med hjälp av dessa årtal kan följande samband ställas upp: (1492 n 1770 n 1863 n +a n ) mod b = 0 Ta reda på de två årtalen a och b, då man vet att uttrycket ovan är sant för alla positiva heltal n. Håkan Strömberg 184 KTH STH
Laborationsuppgift 67. C-funktion (2) Här är en algoritm som bestämmer { m n}. Implementera den som en funktion i C. Algorithm 7.7.1: STIRLINGNUMBERS2(m, n) S(0,0) 1 for i 1 to m do S(i,0) 0 for i 0 to m do S(i,i+1) 0 for i { 1 to m for j 1 to min(i,n) do do S(i,j) js(i 1,j)+S(i 1,j 1) return (S) Laborationsuppgift 68. Poängdomare (3) Vid en uppvisningstävling kan de tävlande, från de n domarna få någon av poängen 0,1,2,3,4 eller 5. Skriv en funktion f(m, n) som tar emot total uppnådd poäng m och antalet domare n och som returnerar en lista med de olika sätt på vilken poängen kan ha uppnåtts. Ett exempel: f(30,7) ger som resultat (2,5,0,0,0,0) (3,3,1,0,0,0) (4,1,2,0,0,0) (4,2,0,1,0,0) (5,0,1,1,0,0) (5,1,0,0,1,0) (6,0,0,0,0,1) Från vänster till höger inom varje parentes anges antalet 5:or, 4:or, 3:or och så vidare. Håkan Strömberg 185 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Dagens Teori 8.8 Diskret sannolikhetslära 8.8.1 Utfallsrum och händelser Vi ska här studera slumpmässiga försök med ändligt många utfall, resultat. Mängden av alla utfall kallas försökets utfallsrum. Varje delmängd av utfallsrummet kallas en händelse. Exempel 78 A) Försöket att kasta en tärning har sex utfall, vilka vi kan beteckna 1, 2, 3, 4, 5, 6. Utfallsrummet är mängden U = {1,2,3,4,5,6} Här är några exempel på händelser och beskrivningar av dem: a) {6} man får en sexa b) {5,6} man får en femma eller en sexa c) {1,3,5} man får ett udda poängtal d) {1,2,3,4,5} man får inte en sexa B) Försöket att kasta två häftstift har fyra utfall. Exempelvis kan det första häftstiftet lägga sig med spetsen uppåt och det andra med spetsen nedåt. Detta utfall kan vi beteckna U och N, och utfallsrummet blir: {UU,UN,NU,NN} Som exempel på händelser väljer vi: {UU} bbåda stiften lägger sig med spetsen uppåt {UN,NU} de båda stiften lägger sig på olika sätt Håkan Strömberg 186 KTH STH
8.8.2 Sannolikheter Exempel 79 En tärning, som inte är massiv utan har asymmetriskt placerade hålrum, har sidorna märkta a,b,c,d,e och f. Att kasta denna tärning på golvet från en viss höjd är ett slumpmässigt försök med utfallsrummet {a, b, c, d, e, f}. Försöket utfördes 500 gånger, och de relativa frekvenserna för de sex utfallen bestämdes efter 20, 40, 60,..., 500 kast. Efter 500 kast var resultaten följande: (N = 500) a b c d e f f 221 168 40 48 6 17 f/v 0.442 0.336 0.080 0.096 0.012 0.034 0.5 0.4 0.3 0.2 0.1 100 200 300 400 500 Figur 8.54: Figur 8.54 visar hur de relativa frekvenserna stabiliserades då antalet försök växte. De olika utfallen kan tillordnas vissa sannolikheter. Som approximationer till dessa använder vi (i brist på längre försöksserier) de relativa frekvenserna i tabellen på föregående sida, avrundade till två decimaler: Utfall a b c d e f Sannolikhet 0.44 0.34 0.08 0.10 0.01 0.03 Observera att dessa sannolikheter ligger i intervallet [0,1] och har summan 1. Nu kan vi beräkna sannolikheten för en godtycklig händelse i försöket. Som exempel väljer vi A = {a,b,c} det vill säga händelsen att antingen sidan a, sidan b eller sidan c kommer upp. I försöksserien var relativa frekvensen för denna händelse 221+168+40 500 0.44+0.34+0.08 = 0.86 Vi tillordnar därför händelsen A sannolikheten 0.86, det vill säga summan av sannolikheterna för de utfall a, b och c som händelsen består av. Håkan Strömberg 187 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Vi betraktar nu allmänt ett slumpmässigt försök med ändligt många utfall Dessa utfall tillordnar vi vissa sannolikheter u 1,u 2,...,u n p 1,p 2,...,p n Sannolikheterna skall vara tal i intervallet [0,1], och de skall ha summan 1: 0 p k 1 p 1 +p 2 +...+p n = 1 Att sannolikheterna skall uppfylla dessa villkor är naturligt. Som approximationer till sannolikheterna kan vi nämligen liksom i exemplet använda de olika utfallens relativa frekvenser i en lång försöksserie, och dessa relativa frekvenser är ju tal i intervallet [0,1] och har summan 1. Sannolikheterna p 1,p 2,...,p n kallas försökets elementarsannolikheter. Med hjälp av dem kan man definiera sannolikheten för vilken som helst händelse A i försöket. Denna sannolikhet betecknas P(A) och definieras på följande sätt: P(A) är summan av elementarsannolikheterna för alla utfallen i händelsen A. Om till exempel A = {u 2,u 3,u 5,u 7 }, så är alltså P(A) = p 2 +p 3 +p 5 +p 7 8.8.3 Likformig sannolikhetsfördelning För att bestämma elementarsannolikheterna i ett försök måste man i allmänhet utföra försöket ett stort antal gånger och bestämma relativa frekvenserna för de olika utfallen. I vissa försök, särskilt sådana som har med hasardspel att göra, finns det dock en sådan symmetri mellan utfallen att man omedelbart kan sluta sig till att samtliga elementarsannolikheter är lika. Sådana försök sägs ha likformig sannolikhetsfördelning. Antag att ett försök med n utfall har likformig sannolikhetsfördelning. Eftersom elementarsannolikheterna är lika och har summan 1, så är var och en av dem lika med 1 n. Sannolikheten P(A) för en händelse A är summan av elementarsannolikheterna för utfallen i händelsen. Om A består av g utfall så gäller alltså P(A) = g 1 n = g n Sannolikheten är alltså lika med kvoten av antalet för händelsen gynnsamma utfall och totala antalet utfall. Då sannolikhetsläran började utvecklas i mitten av 1600-talet, använde man denna beskrivning som definition av en händelses sannolikhet, och den kallas därför den klassiska sannolikhetsdefinitionen. Observera att den endast kan användas för försök som har likformig sannolikhetsfördelning. Håkan Strömberg 188 KTH STH
Exempel 80 Andersson har en rutig keps, Pettersson en prickig och Lundström en blommig. De tre kepsarna, som för övrigt är lika, ligger på en hylla i en mörk korridor. Andersson, Pettersson och Lundström tar på måfå var sin keps. Vilken är sannolikheten att ingen får rätt keps? Lösning: De tre kepsarna kan lämpligen betecknas med ägarnas initialer, det vill säga med A,P och L. Som utfall kan man välja de sex permutationerna APL,ALP,PAL,PLA,LAP,LPA där bokstäverna i en permutation i ordning anger vilken keps Andersson, Pettersson respektive Lundström får. Tydligen får ingen rätt keps i två av dessa utfall, nämligen PLA och LAP. Den sökta sannolikheten är alltså: g n = 2 6 = 1 3 Om ett försök har ett litet antal utfall, så kan talen g och n bestämmas genom att man liksom i ovanstående exempel skriver upp samtliga utfall. Om antalet utfall är någorlunda stort, så får man däremot använda sig av formler från kombinatoriken. Exempel 81 Ur en kortlek dras på måfå fem kort. Vilken är sannolikheten att alla fem är? Lösning: En kortlek innehåller som bekant 52 kort varav 13 är. Försöket att dra 5 kort bland 52 har ( 52 5) = 2598960 utfall. Om de fem korten alla skall vara, så måste de väljas bland de 13 -korten i leken, vilket kan ske på ( 13 5) = 1287 sätt. Den sökta sannolikheten är alltså: ( 13 ) 5 ) = 13 12 11 10 9 52 51 50 49 48 = 33 66640 1 2000 ( 52 5 8.8.4 Egenskaper hos sannolikheter Antag att ett slumpmässigt försök har utfallsrummet U = {u 1,u 2,u 3,...,u n } Sannolikheten för en händelse A är summan av elementarsannolikheterna för de utfall A består av. Eftersom samtliga elementarsannolikheter är icke-negativa och har summan 1, så gäller 0 P(A) 1 Varje delmängd av utfallsrummet, alltså även den tomma mängden och U självt, är en händelse. är försökets omöjliga händelse (inget utfall inträffar), och U är försökets säkra händelse (något av utfallen inträffar). Man inser omedelbart att P( ) = 0 P(U) = 1. Om A och B är händelser, så är A B och A B händelser. Håkan Strömberg 189 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Exempel 82 Antag att Då är och A = {u 1,u 2,u 3,u 4 } B = {u 3,u 4,u 5,u 6,u 7 } A B = {u 1,u 2,u 3,u 4,u 5,u 6,u 7 } A B = {u 3,u 4 } Om elementarsannolikheterna betecknas p 1,p 2,p 3,...,p n så gäller P(A B) = p 1 +p 2 +p 3 +p 4 +p 5 +p 6 +p 7 = (p 1 +p 2 +p 3 +p 4 )+(p 3 +p 4 +p 5 +p 6 +p 7 ) (p 3 +p 4 ) = = P(A)+P(B) P(A B) A B är händelsen A eller B, det vill säga A eller B eller eventuellt både A och B inträffar A B är händelsen A och B, det vill säga både A och B inträffar. Med samma resonemang som i exemplet kan man visa att följande formel gäller: Den kallas sannolikhetslärans additionssats. P(A B) = P(A)+P(B) P(A B) Om A B = så sägs händelserna A och B vara uteslutande. I detta fall har A och B inget gemensamt utfall, och de kan alltså inte inträffa samtidigt. I ett tärningskast är till exempel de båda händelserna att få en sexa och att få ett udda poängtal uteslutande, ty det finns inget utfall som gör att båda händelserna inträffar. Eftersom P(A B) = P( ) = 0, så förenklas additionssatsen i fallet med uteslutande händelser till P(A B) = P(A)+P(B) Med komplementhändelsen A till en händelse A menas den händelse, som består av alla de utfall i U som inte tillhör A. Komplementhändelsen A är alltså den händelse som består i att A inte inträffar. Eftersom A och A inte har något gemensamt utfall och tillsammans omfattar alla utfallen i U, så gäller: P(A)+P( A) = P(A A) = P(U) = 1, P( A) = 1 P(A) Exempel 83 Vid kast med en symmetrisk tärning har händelsen att få en sexa sannolikheten 1/6. Komplementhändelsen att inte få en sexa har sannolikheten 1 1 6 = 5 6 Håkan Strömberg 190 KTH STH
Exempel 84 Man kastar samtidigt en röd och en svart tärning. Beräkna sannolikheterna för följande händelser: A en sexa på den röda tärningen B en sexa på den svarta tärningen C minst en sexa D ingen sexa Lösning: Som utfallsrum väljs mängden av alla talpar (r,s) där r och s anger poängtalet på den röda respektive svarta tärningen. Denna mängd består av 36 element, och dessa kan åskådliggöras med de vita rutorna i figur 9.62. Vi antar att alla elementarsannolikheterna är 1/36. Figur 8.55: Händelserna A, B och A B består av 6,6 respektive 1 utfall, och alltså gäller: P(A) = P(B) = 6 1 36 = 1 6 P(A B) = 1 36 Händelsen minst en sexa innebär en sexa på endera eller båda tärningarna. Alltså är C = A B, och P(C) = P(A B) = P(A)+P(A) P(A B) = 1 6 + 1 6 + 1 36 = 11 36 Händelsen ingen sexa är komplementhändelse till minst en sexa. Alltså är D = C, och P(D) = P( C) = 1 P(C) = 1 11 36 = 25 36 Håkan Strömberg 191 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA 8.8.5 Oberoende och icke oberoende händelser Exempel 85 Ett försök består i att man samtidigt kastar en tändsticksask och ett mynt. Vi gör följande antaganden: A är händelsen plånsida på asken, P(A) = 0.2. B är händelsen klave på myntet, P(B) = 0.5. Om man utför detta försök n gånger, där n är ett stort tal, så bör A inträffa i ungefär 0.2n kast. Eftersom händelsen plånsida på asken inte rimligtvis kan påverka händelsen klave på myntet, så bör i dessa 0.2n kast händelsen B inträffa ungefär 0.5 0.2n gånger. Händelsen A B, det vill säga både plånsida och klave, har därför en relativ frekvens på 0,5 0.2. Det är då rimligt att anta att Om för två händelser A och B gäller att P(A B) = 0.2 0.5 = P(A)P(B) P(A B) = P(A)P(B) så sägs händelserna vara oberoende. Exemplet ovan visar att denna definition stämmer med vår intuitiva uppfattning om att två händelser är oberoende. Tre eller flera händelser sägs vara oberoende, om varje snitt av två eller flera av händelserna har en sannolikhet, som är lika med produkten av sannolikheten för de händelser som ingår i snittet. Exempel 86 Fyra symmetriska tärningar kastas på en gång. Vilken är sannolikheten att man får åtminstone en sexa? Lösning: Låt A,B,C och D beteckna händelserna att tärning nr 1,2,3 respektive 4 inte ger en sexa. Dessa händelser är oberoende, och var och en av dem har sannolikheten 5/6. Händelsen A B C D är komplementhändelse till händelsen åtminstone en sexa, varför den sökta sannolikheten är: ( ) 5 4 1 P(A B C D) = 1 P(A)P(B)P(C)P(D) = 1 0.518 6 Antag att A och B är två händelser i ett försök, som har ett utfallsrum U med n utfall Om sannolikhetsfördelningen är likformig och händelserna A B och A består av g respektive m utfall, så gäller: P(A B) = g n = m n g m = P(A) g m Om vi inför beteckningen P A (B) = g/m, så kan detta skrivas: P(A B) = P(A)P A (B) P A (B) är kvoten av antalet utfall i A, vid vilka även B inträffar, och totala antalet utfall i A. Man kallar därför P A (B) den betingade sannolikheten för B då A inträffat. Även om Håkan Strömberg 192 KTH STH
sannolikhetsfördelningen inte är likformig kan man definiera P A (B) så att likheten ovan gäller. En jämförelse med formeln P(A B) = P(A)P(B) visar att händelserna A och B är oberoende, om och endast om P A (B) = P(B). För snitt av tre eller flera händelser gäller analoga formler. Så till exempel är P(A B C) = P(A)P A (B)P AB (C) där P AB (C) är den betingade sannolikheten för C, då A och B inträffat. Exempel 87 Ur en kortlek väljer man på måfå ut tre kort. Vilken är sannolikheten att alla tre är? Lösning: Låt A, B och C beteckna händelserna att det första, andra respektive tredje valda kortet är ett. Då är P(A) = 13/52. Då A inträffat finns det 51 kort i leken, och 12 av dessa är. Alltså är P A (B) = 12/51. På samma sätt inses att P AB (C) = 11/50. Den sökta sannolikheten är alltså: P(A B C) = 13 52 12 51 11 50 = 11 850 0.013 Mathematica I de flesta av dagens laborationsuppgifter gäller det att simulera slumpmässiga försök till det behöver vi slumptal, ibland heltal i ett givet intervall och ibland flyttal x i intervallet 0 x < 1 Bland uppgifterna finner du klassiska sannolikhetsproblem, som alla kan lösas teoretiskt. Ibland går dock teorin utanför denna kurs och ibland är den mer elementär. Detta spelar nu ingen roll eftersom du ska lösa problemen genom simulering med hjälp av C eller Mathematica. Meningen är att du på det sättet ska upptäcka att simulering är ett kraftfullt verktyg där man ofta kommer mycket nära sanningen. Det finns nämligen gott om andra problem där man är helt utlämnad till datorsimuleringar på grund av att en teoretisk lösning är för komplicerad eller omöjlig. roll[] := Random[Integer, {1, 6}] Table[roll[], {i, 1, 10}] {1, 4, 3, 1, 4, 4, 3, 5, 6, 5} Ska vi till exempel kasta en tärning, kan vi deklarera en funktion liknande den ovan. För att generera ett tärningskast anropar vi funktionen roll[]. Genom funktionen p[] := Random[Real, {0, 1}] Table[P[], {I, 1, 5}] {0.267661, 0.523636, 0.656909, 0.306949, 0.0191728} Håkan Strömberg 193 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA får man ett reellt slumptal i intervallet [0,1). Vill man ha en slumpmässig permutation av elementen i en lista använder man RandomSample. RandomSample[Range[10]] {8,7,2,3,6,4,5,9,10,1} När man anropar funktionerna ovan kan man inte förutsäga vilket resultat som kommer att erhållas. Ibland när man utvecklar simuleringsprogram, som inte riktigt fungerar som de ska, kan det vara frustrerande att vid varje körning få olika serier av slumptal. Vill man använda samma serie kan man ordna det med hjälp av SeedRandom. Se exemplet nedan. SeedRandom[111129] RandomSample[Range[10]] {3, 6, 4, 2, 1, 8, 10, 7, 9, 5} SeedRandom[111129] RandomSample[Range[10]] {3, 6, 4, 2, 1, 8, 10, 7, 9, 5} Vi skapar en kortlek och blandar den farg = {"S", "H", "D", "C"}; valor = Join[Range[2, 10], {"J", "Q", "K", "A"}]; lek = Flatten[Table[{farg[[i]], valor[[j]]}, {i, 4}, {j, 13}], 1]; lek = RandomSample[lek] Här en del av utskriften {{D, 4}, {D, 10}, {H, 8}, {S, 8}, {C, J}, {H, 5}, {H, J}, {H, 3}, {D, 7}, {C, 5}, {S, 6}, {D, 3}, {S, A}, {D, 9}, {D, Q}, {S, Q}, {C, 2}... Så gör man i C Satsen a=rand()%100 tilldelar a ett slumpmässigt heltal i intervallet 0... 99. Ett tärningskast t erhålles till exempel genom t=rand()%6+1. I några av uppgifterna är det mera lämpligt att arbeta med slumptal s, 0 s < 1. Dessa kan till exempel skapas genom satsen a=(float)rand()/32768; Talet 32768 är valt så därför att i de flesta C-miljöer är 32767 det största slumptal man kan få genom rand(). För att olika körningar av ditt program ska ha chansen att ge olika resultat kan du använda funktionen srand(time(0)), som du ska se till att den exekveras endast en gång under körningen. Placera den lämpligen som första sats i programmet. Håkan Strömberg 194 KTH STH
Blandning av vektor i C I några av uppgifterna behöver man blanda talen i en array. För detta lämnar vi här en funktion som sköter jobbet. Genom att först placera talen 1 till 52 i arrayen lek och sedan anropa blanda har en blandning av kortleken åstadkommits. 1 #include <stdio.h> 2 #include <conio.h> 3 void blanda(int a[ ],int n){ 4 int k,tmp,plats; 5 for(k=0;k<n;k++){ 6 plats=rand()%(n k)+k; 7 tmp=a[k]; 8 a[k]=a[plats]; 9 a[plats]=tmp; 10 } 11 } Ett par exempel Problem: Hur många kort måste man vända upp från en välblandad kortlek innan all 13 -korten har visat sig? Utför experimentet 10000 gånger och svara med ett medelvärde hos dessa försök f[] := Block[{forsok, L, i, n, B, tot = 0}, L = Range[52]; For[forsok = 1, forsok <= 10000, forsok++, i = 1; n = 0; B = RandomSample[L]; While[n < 13, If[B[[i]] <= 13, n++; ] i++; ]; tot = tot + i; ]; tot/10000 // N ] L innehåller en oblandad kortlek talen 1... 52 helt enkelt. Vi säger att korten 1... 13 är. B innehåller en blandad kortlek. Vi räknar -kort i while-loopen. När n = 13 har vi hittat alla. Det värde i stannar på anger hur många kort vi vänt. Några körningar 49.9777 49.9946 50.0490 Ingen speciellt effektiv simulering, som snarare vill visa hur en simulering kan gå till. En gissning är att man i genomsnitt måste vända 50 kort. Håkan Strömberg 195 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Problem: Till ditt förfogande finns ett obegränsat antal vanliga tärningar. Ditt mål är att uppnå en bestämd summa s. Vilket antal tärningar n bör du välja att kasta samtidigt, för att ha största chansen att nå denna totala summa av ögon? Skriv ett program som frågar efter önskad summa s och som beräknar och skriver ut antalet tärningar n, som ger bästa chansen för att uppnå summa. f[n_] := Block[{F, i, sum, a}, F = Table[0, {i, 1, 31}]; For[i = 1, i <= 10000, i++, sum = 0; a = 0; While[sum < n, sum = sum + Random[Integer,{1,6}]; a++; ]; If[sum == n, F[[a]]++, F[[n+1]]++; ] ]; F ] Först nollställer vi frekvenstabellen F. Detta program klarar av summor upp till 30. Vi ska nu göra 10000 försök. I stället för att kasta alla tärningar på en gång kastar vi en i taget och får den ackumulerade summan i sum. a håller reda på hur många kast vi gjort i pågående serie. När sum n avbryts loopen. Vi ökar nu elementet i F med index sum. Om vi inte lyckades få önskad summa registrerar vi det i F[n +1]. Vi konverterar arrayen till en lista som vi returnerar. Ett körningsexempel för summan 28 f[28] {0,0,0,0,16,235,644,857,644,331,127,41,9,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,7095,0,0} Detta betyder att om jag kastar 8 tärningar får jag summan 28 med sannolikheten 0.00875 Håkan Strömberg 196 KTH STH
Teoriuppgifter Problem 131 Ett kort dras ur en kortlek, och man antecknar kortets färg. Detta försöks utfallsrum kan skrivas: {,,, } Beskriv i ord följande händelser: a { } b {, } c {,, } Problem 132 Vi kastar en tärning. Skriv upp de händelser som består i att man får a 3 poäng b inte 3 poäng c minst 3 poäng d högst 3 poäng Problem 133 Man kastar tre häftstift a Skriv upp detta försöks utfallsrum med användande av beteckningarna U och N b Skriv upp den händelse som består i att alla tre stiften lägger sig på samma sätt. c Skriv upp den händelse som består i att två stift lägger sig med spetsen uppåt och ett med spetsen nedåt. Problem 134 Att tippa en fotbollsmatch på en stryktipskupong är ett slumpmässigt försök vars utfallsrum kan skrivas {1,X,2}. Skriv på lämpligt sätt upp utfallsrummet till försöket att tippa två av matcherna på kupongen. Håkan Strömberg 197 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Problem 135 Att gissa fyra gåtor är ett slumpmässigt försök som exempelvis har utfallet FRRF, det vill säga man gissar fel på första gåtan, rätt på den andra och så vidare a Hur många utfall har detta försök? b Skriv upp händelsen att man gissar rätt på precis tre av gåtorna. Problem 136 Att välja ut två kort ur en väl blandad kortlek är ett slumpmässigt försök. a Hur många utfall har detta försök? b I hur många av utfallen är båda korten äss? c I hur många av utfallen är det ena kortet ett äss men inte det andra? Problem 137 Antag att elementarsannolikheterna vid kast med en inte alldeles symmetrisk tärning är följande: Utfall 1 2 3 4 5 6 Sannolikhet 0.15 0.16 0.16 0.17 0.18 0.18 Beräkna sannolikheterna för följande händelser: a A = {5,6}, antingen en femma eller en sexa b B = {1,2,3} högst poängtalet 3 c C = {1,2,3,4,5} inte en sexa Problem 138 En hand i bridge består av 13 kort. Att räkna antalet äss i en sådan hand är ett försök med följande utfall och elementarsannolikheter Utfall 0 1 2 3 4 Sannolikhet 0.304 0.439 0.213 0.041 0.003 Beräkna sannolikheten för att en slumpvis given hand har a åtminstone ett äss, det vill säga 1,2,3 eller 4 äss b minst 2 äss c mer än 2 äss. Håkan Strömberg 198 KTH STH
Problem 139 Antag att en person spelar bridge en kväll varje vecka och i genomsnitt 15 partier per kväll. Ungefär hur många gånger under ett år bör det inträffa att han får en hand med a 4 äss b minst 3 äss c inget äss Bestäm först sannolikheterna för dessa händelser med hjälp av elementarsannolikheterna i föregående uppgift. Problem 140 Antalet trafikolyckor under en vecka på en viss väg kan betraktas som utfall av ett slumpmässigt försök. Antag att man efter en längre tids studium av olycksfrekvensen på vägen kommit fram till följande sannolikheter: Antal olyckor 0 1 2 3 4 5 Sannolikhet 0.25 0.35 0.24 0.11 0.04 0.01 Beräkna sannolikheten för att det under en vecka inträffar: a högst en olycka b åtminstone en olycka c högst två olyckor d mer än två olyckor Problem 141 Bland bokstäverna a,b,c och d utväljs slumpmässigt först en bokstav och sedan en av de tre återstående. Detta försök har 12 utfall som alla antas ha elementarsannolikheten 1/12. a Skriv upp utfallen b Bestäm sannolikheten för att a kommer med bland de två valda bokstäverna Problem 142 Följande tabell ger frekvenser för antalet mål i de 528 allsvenska fotbollsmatcherna under åren 1959 1962: Antal mål 0 1 2 3 4 5 6 7 8 9 10 Frekvens 23 59 102 105 79 58 50 25 18 5 4 Håkan Strömberg 199 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Använd dessa frekvenser till att bestämma sannolikheter för de olika antalen mål. Ange sannolikheterna med två decimaler. Bestäm sedan sannolikheten för att det i en allsvensk fotbolls-match skall bli: a 0-0 b högst tre mål c minst sju mål Problem 143 Man kastar en symmetrisk tärning. Beräkna sannolikheterna för följande händelser: a en sexa b en femma eller en sexa c inte en sexa d ett jämnt poängtal Problem 144 Ett kort dras ur en vanlig kortlek. Vilken är sannolikheten att man får a ett äss b ett c ett klätt kort, det vill säga kung, dam eller knekt Problem 145 Försöket att kasta ett mynt har två utfall, som vi kan beteckna k krona och g gubbe. Skriv upp utfallsrummet för det försök som består i att myntet kastas a två gånger b tre gånger. Problem 146 Ett symmetriskt mynt kastas två gånger. Beräkna sannolikheterna för följande händelser: a krona båda gångerna b krona en gång och gubbe en gång Håkan Strömberg 200 KTH STH
Problem 147 Ett symmetriskt mynt kastas tre gånger. Beräkna sannolikheterna för följande händelser: a krona alla tre gångerna b krona två gånger och gubbe en gång Problem 148 Beräkna antalet utfall i det försök som består i att en tärning kastas a två gånger b tre gånger. Använd multiplikationsprincipen Problem 149 En symmetrisk tärning kastas två gånger. Beräkna sannolikheten för följande händelser: a två sexor b en sexa och en femma c poängsumman 10 d minst poängsumman 10 Problem 150 Ur en kortlek dras på måfå två kort. Vilken är sannolikheten att båda blir? Problem 151 En burk innehåller 5 kulor, av vilka 2 är röda och 3 gröna. Man tar på måfå två kulor ur burken. Beräkna sannolikheterna för följande händelser: a två röda kulor b två gröna kulor c en kula av varje färg Håkan Strömberg 201 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Problem 152 a Vad är det för fel i följande resonemang? Om två symmetriska tärningar kastas, så kan poängsumman bli något av talen 2,3,4,...,12. Antalet möjliga utfall är alltså 11, och sannolikheten för poängsumman 12 är alltså 1/11. b Vilken är den rätta sannolikheten för poängsumman 12? Problem 153 Två kort dras på måfå ur en kortlek. Vilken är sannolikheten för att ett av korten är äss? Problem 154 En bilhandlare har 10 bilar i lager. Av dessa är 6 felfria och 4 behäftade med mindre fel. En firma köper två av bilarna (utan att närmare undersöka dem). Vilken är sannolikheten att båda bilarna är felfria? Problem 155 På en parkeringsplats finns 7 platser. Tre bilar ställer sig på slumpmässigt valda platser. Beräkna sannolikheten för att alla bilarna kommer intill varandra, om de sju parkeringsplatserna ligger a i rad b i ring. Problem 156 En symmetrisk tärning kastas tre gånger. Vilken är sannolikheten för att man får mer än 15 poäng sammanlagt? Problem 157 Ett bokverk består av delarna 1...4. De fyra böckerna ställs slumpvis upp efter varandra på en hylla. Vilken är sannolikheten för att a böckerna kommer i rätt ordning b ingen bok kommer på sin rätta plats? Problem 158 I en mörk garderob ligger tre par skor buller om buller. Man tar på måfå ut tre skor. Vilken är sannolikheten för att två av dessa skor tillhör samma par? Håkan Strömberg 202 KTH STH
Problem 159 En symmetrisk tärning kastas två gånger. a Vilken är sannolikheten för händelsen båda kasten ger samma poängtal? b Ange komplementhändelsen och dess sannolikhet. Problem 160 En symmetrisk tärning kastas tre gånger. Vilken är sannolikheten för att åtminstone två av kasten ger samma poängtal? (Komplementhändelsen är alla tre kasten ger olika poängtal. Visa med multiplikationsprincipen att antalet gynnsamma utfall för denna händelse är 6 5 4 Problem 161 I en burk finns 5 röda och 4 gröna kulor. Man väljer på måfå ut 3 av kulorna. Beräkna sannolikheten för att man får åtminstone en grön kula. (Beräkna först sannolikheten för komplementhändelsen alla tre kulorna är röda. På hur många sätt kan de 3 kulorna väljas bland de 9 kulorna respektive bland de 5 röda kulorna?) Problem 162 Man väljer slumpmässigt ut en elev i en viss årskurs och tittar på betygen i matematik och fysik. Vi antar att händelsen femma i matematik (A) har sannolikheten 0.07 femma i fysik (B) har sannolikheten 0.06, femma i båda ämnena (A B) har sannolikheten 0.04. Beräkna sannolikheterna för följande händelser: a Åtminstone en femma i de båda ämnena (A B). b Ingen femma. (Komplementhändelse till föregående händelse.) c Femma i det ena men inte i det andra ämnet. Problem 163 På en viss tillverkad enhet kan två olika fel uppträda. Sannolikheten för att en slumpvis utvald enhet har det ena, det andra eller båda dessa fel är 0.008, 0.015 respektive 0.003. Beräkna sannolikheten för: a minst ett fel b inget fel c exakt ett fel. Håkan Strömberg 203 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Problem 164 Ur en väl blandad kortlek dras slumpvis 13 kort. Vilken är sannolikheten att bland dessa 13 kort finns a hjärter äss b spader äss c båda dessa äss d åtminstone ett av dessa två äss e inget av de två ässen f det ena av de två ässen men inte det andra? Problem 165 I en klass finns 20 elever, av vilka 5 är flickor. Vid ett förhör får 4 slumpvis utvalda elever redovisa sina kunskaper. Vilken är sannolikheten att bland dessa fyra finns a ingen flicka b åtminstone en flicka? Problem 166 En vanlig kortlek består som bekant av fyra färger med 13 kort i varje färg. Om man slumpvis väljer ut fyra kort ur leken, vilken är då sannolikheten att man får åtminstone två kort av samma färg? (Beräkna först sannolikheten för komplementhändelsen, det vill säga att man får ett kort av varje färg.) Problem 167 Ur en vanlig kortlek utväljs slumpvis 13 kort (en hand i bridge). Vilken är sannolikheten att man får åtminstone ett äss? Problem 168 I ett lotteri med 100 lotter utlottas 3 vinster. Vilken är sannolikheten att en person, som köpt 5 lotter, får åtminstone en vinst? Håkan Strömberg 204 KTH STH
Problem 169 När man kastar en viss tändsticksask är sannolikheten att den lägger sig på plånsida 0.2. Två sådana askar kastas samtidigt. Vilken är sannolikheten att a båda b ingen c exakt en lägger sig på en plånsida Problem 170 Man kastar tre häftstift. För varje stift är sannolikheten att det lägger sig med spetsen uppåt 0.6. Beräkna sannolikheten för att alla tre stiften lägger sig a med spetsen uppåt b med spetsen nedåt c på samma sätt Problem 171 Ur en kortlek väljer man på måfå ut två kort. a Vilken är sannolikheten att båda är hjärterkort? b Vilken är sannolikheten att båda korten har samma färg? Problem 172 Antag att sannolikheten att ett paket med skruvar innehåller åtminstone en felaktig skruv är 0.02. Vilken är sannolikheten att det i fyra sådana paket inte, finns någon enda felaktig skruv? (Räkna först ut sannolikheten för att ett paket är felfritt) Problem 173 Två skyttar skjuter var sitt skott mot ett mål. Antag att deras träffsannolikheter är 0.3 och 0.6. Vilken är sannolikheten att minst en av dem träffar målet? (Beräkna först sannolikheten för komplementhändelsen, det vill säga att båda skjuter bom) Problem 174 Utanför en affär finns det 5 parkeringsplatser för kunder. Var och en av platserna är under affärstid ledig i genomsnitt 3 minuter per timme. Uppskatta sannolikheten att man vid ett tillämpat besök i affären finner åtminstone en av de fem parkeringsplatserna ledig. (Sannolikheten att en viss plats är ledig är 3/60. Beräkna först sannolikheten för att alla fem platserna är upptagna) Håkan Strömberg 205 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Problem 175 En apparat är sammansatt av tre komponenter och fungerar endast om samtliga tre komponenter är felfria. Vilken är sannolikheten för att apparaten inte fungerar, om sannolikheterna för fel i de tre komponenterna är 2.0%, 3.5% och 4.2%? Felen antas vara oberoende av varandra. Problem 176 En symmetrisk tärning kastas fyra gånger. Vilken är sannolikheten att alla fyra kasten ger olika poängtal? Problem 177 Beräkna sannolikheten att man får minst en dubbelsexa vid 24 kast med två tärningar. Problem 178 Hur många gånger behöver man kasta en symmetrisk tärning för att ha en sannolikhet på minst 0.99 för att få åtminstone en sexa? Lösningar Teoriuppgifter Lösning Teoriuppgift 131 a) Man får ett hjärter b) Man får ett rött kort c) Man får inte ett hjärter Lösning Teoriuppgift 132 a) {3} b) {1,2,4,5,6} c) {3,4,5,6} d) {1,2,3} Lösning Teoriuppgift 133 a) {UUU, NUU, UNU, UUN, UNN, NUN, NNU, NNN} b) {UUU, NNN} c) {NUU, UNU, UUN} Lösning Teoriuppgift 134 {11,1x,12,x1,xx,x2,21,2x,22} Lösning Teoriuppgift 135 a) 2 4 = 16 b) {FRRR,RFRR,RRFR,RRRF} Lösning Teoriuppgift 136 a) ( 52 ( 2) = 1326 b) 4 2) = 6 c) 192 Ässet kan väljas på 4 sätt och det andra kortet på 48 sätt. Lösning Teoriuppgift 137 a) 0.36 b) 0.47 c) 0.82 Håkan Strömberg 206 KTH STH
Lösning Teoriuppgift 138 a) 0.696 b) 0.257 c) 0.044 Lösning Teoriuppgift 139 a) 2 b) 34 c) 237 Sannolikheterna är 0.003, 0.044 och 0.304. Multiplicera dessa med antalet partier, det vill säga med 52 15 Lösning Teoriuppgift 140 a) 0.60 b) 0.75 c) 0.84 d) 0.16 Lösning Teoriuppgift 141 a) ab,ac,ad,ba,bc,bd,ca,cb,cd,da,db,dc b) 1/2 Lösning Teoriuppgift 142 Sannolikheterna är 0.04, 0.11, 0.19, 0.20, 0.15, 0.11, 0.10, 0.05, 0.03 a) 0.04 b) 0.54 c) 0.10 Lösning Teoriuppgift 143 a) 1 b) 1 c) 5 6 3 6 d) 1 2 Lösning Teoriuppgift 144 a) 4 52 = 1 b) 13 13 52 = 1 4 c) 12 51 = 3 13 Lösning Teoriuppgift 145 a) {kk,kg,gk,gg} b) {kkk,gkk,kgk,kkg,kgg,gkg,ggk,ggg} Lösning Teoriuppgift 146 a) 1 4 b) 1 2 Lösning Teoriuppgift 147 a) 1 8 b) 3 8 Lösning Teoriuppgift 148 a) 6 2 = 36 b) 6 3 = 216 Lösning Teoriuppgift 149 a) 1 b) 2 36 36 = 1 18 d) 6 36 = 1 6 c) 3 36 = 1, gynnsamma utfall:(6+4,5+5,4+6) 12 Håkan Strömberg 207 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Lösning Teoriuppgift 150 ( 13 2) ( 52 2) = 1 17 Lösning Teoriuppgift ( 151 3 1 a) ( 5 = 0.1 b) ( 2) 5 ) = 0.3 c) 2) 2 3 ( 5 = 0.6 2 2) Lösning Teoriuppgift 152 a) Utfallen är inte lika sannolika b) 1 36 Lösning Teoriuppgift 153 51 ( 52 2) = 2 26 Lösning Teoriuppgift 154 ( 6 2) ( 10 2) = 1 3 Lösning Teoriuppgift 155 5 a) ( 7 ) = 1 7 b) ( 7 7 = 3 3) 1 5 Lösning Teoriuppgift 156 10 6 3 = 5 108 0.046. Gynnsamma utfall : (6+6+6), (5+6+6),(6+5+6),(6+6+5),(4+6+6),(6+4+6),(6+6+4), (5+5+6),(5+6+5),(6+5+5) Lösning Teoriuppgift 157 a) 1 4! = 1 24 b) 9 4! = 3 8 Lösning Teoriuppgift 158 3 4 ( 6 3) = 0.6. Ett par kan tas ut på 3 sätt, och den tredje skon kan sedan väljas på 4 sätt Lösning Teoriuppgift 159 a) 6 36 = 1 b) Kasten ger olika poängtal, sannolikheten är 5 6 6 Lösning Teoriuppgift 160 1 6 5 4 6 3 = 4 9 Lösning Teoriuppgift 161 Håkan Strömberg 208 KTH STH
( 5 1 ( 3) 9 ) = 37 42 3 Lösning Teoriuppgift 162 a) 0.07+0.06 0.04 = 0.09 b) 1 0.09 = 0.91 c) 0.03+0.02 = 0.05 Lösning Teoriuppgift 163 a) 0.020 b) 0.980 c) 0.017 Lösning Teoriuppgift 164 a) 1 4 c) ( 50 11 ( 52 13 b) 1 ) 4 ) = 1 17, 13 kort kan väljas på ( 52 13) sätt. Om hjärter äss och spader äss är med, så kan de övriga 11 korten väljas på ( 50 11) sätt d) 1 4 + 1 4 1 17 = 15 e) 19 24 34 4 f) Lösning ( Teoriuppgift 165 15 ) 4 a) ( 20 ) = 91 91 0.28 b) 1 323 323 0.72 4 ( 1 4 1 ) ( 1 + 17 4 1 ) = 13 17 34 Lösning Teoriuppgift 166 1 134 ) 0.89 ( 52 4 Lösning ) Teoriuppgift 167 1 ( 48 13 ( 52 13 ) 0.70 Lösning ( Teoriuppgift 168 97 5) 1 ( 100 ) 0.14 5 Lösning Teoriuppgift 169 a) 0.2 2 = 0.04 b) 0.8 2 = 0.64 c) 1 0.04 0.64 = 0.32 Lösning Teoriuppgift 170 a) 0.6 3 = 0.216 b) 0.4 3 = 0.064 c) 0.216+0.064 = 0.28 Lösning Teoriuppgift 171 a) 13 52 12 51 = 1 b) 4 17 17 Håkan Strömberg 209 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Lösning Teoriuppgift 172 0.98 4 0.92 Lösning Teoriuppgift 173 1 0.7 0.4 = 0.72 Lösning Teoriuppgift 174 ( ) 57 5 1 0.23 60 Lösning Teoriuppgift 175 1 0.980 0.965 0.958 0.094 eller 9.4% Lösning Teoriuppgift 176 6 5 4 3 6 4 = 5 18 Lösning Teoriuppgift 177 ( ) 35 24 1 0.49 36 Lösning ( ) Teoriuppgift 178 5 n 1 0.99 ger n 26 6 Håkan Strömberg 210 KTH STH
Laboration Laborationsuppgift 69. Kularrangemang (2) I figur 8.56 ser vi ett rektangulärt arrangemang med blå och gula kulor, där de gula kulorna Figur 8.56: är inramade av en, en kula bred, ram av blå kulor. I exemplet är höjden h = 5 och bredden b = 7. Konstruera två formler, som för givna h och b, bestämmer antalet blå respektive gula kulor. Använd sedan formlerna för att bestämma de arrangemang där antalet blå respektive gula kulor är lika. Laborationsuppgift 70. Vilket tal? (2) Figur 8.57: Det är punkterna som hamnar i kvartscirkeln som räknas som lyckade försök Utför följande 1 000 000 gånger Ta fram ett reellt slumptal 0 x < 1. Ta fram ett reellt slumptal 0 y < 1. Öka en räknare med 1 varje gång ett lyckat försök inträffar. Ett försök är lyckat då x 2 +y 2 < 1. Beräkna och skriv ut 4 antalet lyckade försök. Vilket är detta tal ett närmevärde på? Håkan Strömberg 211 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA Laborationsuppgift 71. Promenaden över bron (2) En något överförfriskad person är på väg hem efter en fest. På vägen måste han passera Figur 8.58: Här ser vi en typisk vandring med en bro som har bredden 7. Promenaden tog slut efter 20 steg. en bro. Hans vingliga färd innebär att han i varje steg antingen vinglar åt höger eller åt vänster, helt slumpmässigt. Frågan är nu hur många steg han hinner ta innan han kommer så snett att han faller i vattnet. Du ska simulera 10 000 vandringar, i varje försök bestämma antalet steg innan han kommer utanför kanten och till sist presentera ett medelvärde av promenadernas längd från försöken. Indata till programmet är brons bredd, ett udda heltal, där vandringen startar mitt i gångbanan. Och utdata, alltså ett medelvärde på antalet steg vandringen varade. Figuren förklarar det hela. Testa ditt program för de tre bredderna 7, 9 och 13. Laborationsuppgift 72. Getterna och bilen (2) Detta, för många paradoxala, problem ska du simulera med hjälp av ett program som besvarar frågan med vilken sannolikhet man vinner en bil. Under en TV-show förklarar programledaren reglerna för en tävling: Här ser du tre dörrar. Bakom två av dörrarna finns en get och bakom den tredje finns en spritt ny bil. Du ska först välja ut en av dörrarna. Innan jag öppnar den kommer jag att öppna en av de andra, bakom vilken jag vet att det finns en get. Du får sedan möjlighet att ångra dig och i stället ta den andra oöppnade dörren. När du gjort ditt val kommer din valda dörr att öppnas och finns det en bil bakom den, så har du vunnit!. Vilken strategi ska spelaren följa? Ska han hålla kvar vid sitt val eller ska han byta dörr? Ditt program ska göra 10 000 simuleringar, där först bilens placering slumpas fram och sedan den dörr spelaren väljer. Resultatet ska presenteras som en sannolikhet för att vinna bilen med den strategi du väljer att programmet ska arbeta efter. Laborationsuppgift 73. Födelsedagsparadoxen (2) Även detta problem kallas för en paradox, därför att den ger ett resultat som överraskar. Du ska med ett program ta reda på, hur många människor n det lägst behöver finnas i en grupp, för att sannolikheten p, för att två av dem ska ha födelsedag på samma datum, ska vara större än p > 1/2. Håkan Strömberg 212 KTH STH
Laborationsuppgift 74. Röda och svarta kort (2) I hatten finns tre kort, ett är rött på båda sidorna, ett är svart på båda sidorna och det sista är rött på ena sidan och svart på andra. Du drar ett kort från hatten och ser att den ena sidan av kortet är rött. Hur stor är sannolikheten att även andra sidan är rött? Skriv ett program som simulerar 10 000 försök, sådana att första steget i försöket ger ett kort med röd sida och sedan tittar på kortets andra sida. Är den andra sidan också röd anses försöket lyckat. Den sökta sannolikheten p erhålles sedan genom p = l/10000, där l är antalet lyckade försök. Laborationsuppgift 75. Triangeln (2) Från början har vi en 1 meter lång stav, som vi bryter på två slumpmässigt valda ställen. Figur 8.59: När staven bryts på detta sätt är det möjligt att sammanfoga bitarna till en triangel Hur stor är sannolikheten att vi med de tre bitarna, som bildas, kan skapa en triangel? Skriv ett program som simulerar 30 000 försök och som räknar antalet lyckade försök. Med hjälp av detta tal kan du sedan bestämma sannolikheten för att en triangel kan skapas av de tre bitarna. De två slumptalen, s 1 och s 2, som du behöver för att ta reda på var staven bryts bör vara reella 0 s 1, s 2 < 1, se ovan. Laborationsuppgift 76. Hattar och Gubbar (2) Efter en fest, när de n gubbarna skulle gå hem tog de bara slumpmässigt en hatt i garderoben. Hur många fick rätt hatt? Skriv ett program som 10 000 gånger genomför försöket. Efter varje försök bokför programmet hur många av gubbarna som fick rätt hatt. När alla försöken är simulerade skrivs en tabell med antalet träffar och hur många gånger det inträffat ut. Detta är svaret på problemet Antalet hattar och gubbar, n, kan ges som en global konstant i programmet. Testa ditt program med n = 20. Laborationsuppgift 77. Ess i leken (2) Som bekant finns i en vanlig kortlek 4 ess bland de 52 korten. Sannolikheten för att, när man drar fyra kort, alla är ess kan enkelt bestämmas. Problemet är nu att man vill ta bort kort från leken, så många att sannolikheten för att de fyra essen ska dras först är nära Håkan Strömberg 213 KTH STH
8.8. DISKRET SANNOLIKHETSLÄRA 1/1000. Frågan är nu hur många kort leken ska bestå av, inklusive de fyra essen, så att målet är så nära uppfyllt som möjligt. Skriv ett program, som genom att testa för olika antal kort, kommer fram till rätta svaret. Laborationsuppgift 78. Tärningsspelet (2) I figuren ser du spelplanen till ett vanligt tärningsspel. Som spelare får du satsa på vilket Figur 8.60: Spelplanen för tärningsspelet eller vilka nummer du vill. Därefter kastar spelledaren tre tärningar. Om alla tärningarna visar samma antal ögon och du har satsat på detta nummer får du förutom insatsen tillbaka, tre gånger det belopp du satsat i vinst. Visar två tärningar det antal ögon du satsat på får du insatsen och två gånger pengarna tillbaka. Då en tärning visar samma antal ögon som ditt nummer får du insatsen plus lika mycket tillbaka. Hur går detta spel i långa loppet? Har spelaren eller banken övertaget? Besvara dessa frågor genom att simulera 100 000 spel med ett C-program där du satsar 1 kr i varje spel. Programmet ska presentera hur stor vinsten eller förlusten blev. Laborationsuppgift 79. Största talet (2) I en hatt finns 100 kort på vilka det står ett positivt heltal, alla olika. Man vet inte vilket tal som är störst eller något annat om talen. Uppgiften består nu i att plocka kort från hatten, ett i taget, tills man blir nöjd, då man kan kvittera ut lika många kronor som talet på kortet. Problemet är att man inte kan ångra sig man kan aldrig gå tillbaka till ett kort som man tagit tidigare man kan bara stanna eller ta ett nytt kort! Vilken strategi, ska man använda sig av för att ha största chansen att få kortet med största beloppet? En möjlighet, det är den strategin vi ska följa här, kan vara att via ett stort antal försök ta reda på hur många gånger rekordet slås när man drar alla de 100 korten. Att rekordet slås betyder att man just drar ett kort, vars tal, är större än alla tidigare dragna korts tal. När man vet hur många gånger rekordet oftast slås under ett försök, är det bara att följa denna strategi och man bör ha en hyfsad chans att nå ett högt belopp. Skriv nu ett program som gör 10 000 försök och efter varje försök noterar antalet gånger rekordet slogs. När alla försöken är genomförda ska programmet skriva ut en tabell med antal rekord och antalet gånger detta inträffade. Ur denna tabell är det sedan tänkt att man ska välja det antal rekord som har den största frekvensen. Håkan Strömberg 214 KTH STH
Laborationsuppgift 80. Lottorader (2) När man spelar på Lotto gäller det att för en rad välja 7 olika tal bland talen 1 till 35. Under en tid har jag märkt att det är ganska vanligt att åtminstone två tal i veckans rätta rad ligger i sekvens, till exempel både talen 13 och 14 finns med. Nu är frågan hur stor är sannolikheten att veckans rad innehåller minst två tal i sekvens. För att kunna besvara den frågan måste du också kunna ta reda på hur många olika lottorader det finns totalt. Skriv ett program som beräknar den eftersökta sannolikheten. Laborationsuppgift 81. Gambler (2) Kalle har i sin ägo 10 kr. Han singlar slant, och varje gång myntet visar krona vinner han 1 kr, men om myntet visar klave förlorar han 1 kr. Spelet slutar när Kalle har 100 kr eller när han inte har några pengar alls kvar. Simulera 10 000 sådana spel och ange hur stor sannolikheten är att Kalle blir bankrutt. Simulera därefter 10000 sådana spel, där Kalle istället slutar när han har 50 kr. Hur beror ruinsannolikheten på startkapitalet s och slutmålet m? Laborationsuppgift 82. Leksakerna (2) På McDonalds kan man köpa Happy Meal och då får man med en rolig leksak. Det finns tio olika leksaker. En sak som irriterar många föräldrar är att man ofta måste köpa fler än tio Happy Meal för att få minst en leksak av varje slag. Simulera 10000 sådana inköpsserier och bestäm väntevärdet av antalet Happy Meal som måste köpas för att man skall få minst en leksak av varje slag. Laborationsuppgift 83. Noblesse (2) En kartong Noblesse håller runda chokladplattor fördelade i fyra fack om vardera åtta plattor. Du väljer ett fack på måfå och äter upp översta plattan; detta upprepas tills något fack är tomt. Hur många chokladplattor har i genomsnitt ätits? Besvara frågan genom att simulera denna process 10000 gånger. Laborationsuppgift 84. Flygplanet (2) En gammal tant köper en flygbiljett för att åka och hälsa på sin son. Hon kliver på planet först av alla. Eftersom hon ser dåligt kan hon inte läsa stolsnumret på sin biljett, utan sätter sig på måfå någonstans. Resten av passagerarna sätter sig på sin egen plats, om inte denna är upptagen för då väljer de slumpmässigt någon ledig stol. Vad är sannolikheten att den sista passageraren sitter på rätt plats? Antag att antalet passagerare är 100, och simulera scenariot 10000 gånger. Håkan Strömberg 215 KTH STH
9.9. MER SANNOLIKHETSLÄRA Dagens Teori 9.9 Mer sannolikhetslära Vi har i föreläsning 8 presenterat den grundläggande sannolikhetsläran. Nu kommer vi inledningsvis att visa några sannolikhetsparadoxer (paradox = skenbart orimligt). Adam besöker en familj Exempel 88 Adam går för att besöka två gifta vänner. Han har inte haft någon kontakt med dem på flera år men vet att de har två barn, som inte är tvillingar. Han vet inte om de är flickor eller pojkar. När han ringer på dörren, öppnar en pojke. Hur stor är sannolikheten att det andra barnet också är en pojke? Detta är ett perfekt exempel, för att illustrera utfallsrum. Här nedan följer tre försök till lösningar som alla leder till olika resultat. Vilken är korrekt? Lösning 1: Innan dörren öppnas är utfallsrummet U = {PP,PF,FP,FF} Vi tar alltså hänsyn till ordningen och nämner det äldsta barnet först. När dörren öppnas av en pojke har händelse A inträffat A = {PP,PF,FP} Vi vet ju inte om det är det äldsta eller yngsta barnet som står framför Adam. I endast ett av fallen är det andra barnet en pojke. Sannolikheten blir då för att det andra barnet är en pojke! p = 1 3 När Adam går i trappan är sannolikheten att den som öppnar dörren är en flicka lika stor, som att det är en pojke. Men i samma ögonblick som dörren öppnas och han ser en pojke, förändras sannolikheterna. Håkan Strömberg 216 KTH STH
Lösning 2: Vårt utfallsrum är U = {PP,PF,FP,FF} Den som står först i paret är den som öppnar dörren. När en pojke öppnar har händelse A inträffat A = {PP,PF} Sannolikheten att det andra barnet är en pojke blir då P = 1 2 Lösning 3: Om vi med index 1 anger det äldsta barnet och med 2 det yngsta, när de är av samma kön, och att den som står först i paret är den som öppnar dörren, blir vårt utfallsrum U = {P 1 P 2,P 2 P 1,PF,FP,F 1 F 2,F 2 F 1 } När en pojke öppnar dörren har händelsen A inträffat Vi har 2 gynnsamma utfall av totalt 3 och får A = {P 1 P 2,P 2 P 1,PF} p = 2 3 För att bringa reda i problemet ska vi simulera det hela i Mathematica f[n_] := Block[{L = {}, i}, For[i = 1, i <= n, i++, AppendTo[L, {Random[Integer, {1, 2}], Random[Integer, {1, 2}]}] ]; L ] Med denna funktion genererar vi n försök. Varje försök blir en underlista i L, som innehåller två tal. 1 för pojke och 2 för flicka och där äldsta barnet står först. simulera[i_] := Block[{L = f[i], n = 0, f = 0, p = 0, a}, For[j = 1, j <= i, j++, m = L[[j]]; If[m[[1]] == 1 m[[2]] == 1, n++; If[m[[1]] == 2 m[[2]] == 2, f++, p++; ] ] ]; {N[p/n], N[f/n], n} ] simulera[10000] {0.330149, 0.669851, 7433} Håkan Strömberg 217 KTH STH
9.9. MER SANNOLIKHETSLÄRA För varje försök tar vi i första if-satsen reda på om det över huvud taget finns en pojke. Om så är fallet tar vi reda på om det finns en flicka och ökar i så fall f annars måste det vara två pojkar och vi ökar p. Försöket bekräftar att det är den första lösningen som är korrekt. Adam besöker en annan familj Exempel 89 Adam går för att besöka två gifta vänner. Han har inte haft någon kontakt med dem på flera år, men vet att de har två barn, som inte är tvillingar. Han vet inte om de är flickor eller pojkar. När han ringer på dörren, öppnar en pojke. Hej jag är familjens äldsta barn, säger han. Hur stor är sannolikheten att det andra barnet också är en pojke? Lösning : Utfallsrummet är U = {PP,PF,FP,FF} När dörren öppnas av det äldsta barnet som är en pojke har händelse A inträffat. A = {PP,PF} Sannolikheten för att det andra barnet är en pojke är då att det andra barnet är en pojke. p = 1 2 Det behövs bara en smärre förändring av villkoren i if-satserna hos funktionen simulering i Mathematica, för att det hela ska fungera. simulera2[i_] := Block[{L = f[i], n = 0, f = 0, p = 0, a}, For[j = 1, j <= i, j++, m = L[[j]]; If[m[[1]] == 1, n++; If[m[[2]] == 2, f++, p++; ] ] ]; {N[p/n], N[f/n], n} ] simulera2[10000] {0.50148, 0.49852, 5067} Håkan Strömberg 218 KTH STH
Exempel 90 En urna innehåller r 0 röda och b 0 blå kulor. Adam tar, utan att titta, upp en kula från urnan. Det visar sig att den är röd. Om han nu drar en kula till. Hur stor är sannolikheten att den också är röd? Lösning: Problemet är förstås speciellt då man inte vet något om antalet kulor och deras färger. Så här långt vet vi att det från början fanns åtminstone en röd kula. Resten av kulorna kan alla vara röda, vilket är lika troligt, som att det inte finns någon fler röd kula. Vi antar att urnan från början innehöll totalt n kulor och tänker oss lika många urnor U 1...U n. I U 1 lägger vi 1 röd kula och n 1 blåa. I U 2 lägger vi 2 röda kulor och n 2 blåa och så vidare. I den sista urnan U n lägger vi n röda kulor och ingen enda blå. Tillsammans har vi nu i alla urnorna 1+2+3+...+(n 1)+n = n(n+1) 2 Vi har ännu inte hunnit diskutera summor i kursen, så vi tar Mathematica till hjälp för att kontrollera detta. Sum[i, {i, 1, n}] Varje röd kula har sannolikheten 1 n(n+1) 2 n(n+1) 2 = 2 n(n+1) att bli vald. Betraktar vi en urna i taget kan vi konstatera att ur U 1 är sannolikheten för att första kulan som dras är röd p 1 = 1 2 n(n+1) Från urna U 2 p 2 = 2 2 n(n+1) Från den k:te urnan får vi p k = k 2 n(n+1) När vi så har dragit den första kulan ur U k och den var röd, så är sannolikheten för att nästa kula som dras ur denna urna också är röd. p k = k 2 n(n+1) k 1 n 1 Eftersom alla urnor har samma sannolikhet att bli valda (alla fördelningar mellan röda och blåa kulor är lika trolig) summerar vi dessa sannolikheter Vi tar åter Mathematica till hjälp n k=1 k 2 n(n+1) k 1 n 1 Håkan Strömberg 219 KTH STH
9.9. MER SANNOLIKHETSLÄRA Sum[2 k (k - 1)/(n (n + 1) (n - 1)), {k, 1, n}] 2/3 Sannolikheten att nästa kula är röd är alltså p = 2 3. Svårt att tro eller hur, så varför inte göra en simulering med Mathematica och kolla resultatet. Figur 9.61: f[n_] := Block[{red, blue, U, i, t, B, lyckat = 0, redstart = 0, r, b}, red = Random[Integer, {0, 100}]; blue = 100 - red; U = Flatten[Join[Table[b, {i, 1, blue}], Table[r, {i, 1, red}]]]; For[i = 1, i <= n, i++, B := RandomSample[U]; If[B[[1]] == r, redstart++; If[B[[2]] == r, lyckat++; ] ] ]; {lyckat, redstart} ] simulera[] := Block[{i, sum = 0, n = 0, L}, For[i = 1, i <= 500, i++, L = f[200]; sum = sum + L[[1]]; n = n + L[[2]]; ]; N[sum/n] ] Här är resultaten från fyra körningar 0.68, 0.67, 0.68, 0.67 Håkan Strömberg 220 KTH STH
9.9.1 Väntevärde Exempel 91 Adam ska kasta två tärningar. Bertil har bestämt att han ska betala 2 kronor för varje kast. Han ger dessutom följande vinstlista för summan av ögon på tärningarna. Summa Vinst (kr) 12 30 11 10 10 5 Vid vinst får Adam först tillbaka sina 2 satsade kronor, plus den vinst som listan ovan anger. Är detta, i långa loppet, ett vinstgivande spel för Adam? Vi skriver först ned uttrycket som Figur 9.62: bestämmer Adams förväntade vinst v v = ( 2) 30 36 +5 3 36 +10 2 36 +30 1 36 = 11 36 Javisst, Bertil kan inte bli någon casinokung med detta spel där Adam vinner i snitt cirka 14 öre i varje kast. 9.9.2 Binomialfördelningen Om vi singlar slant två gånger är utfallsrummet U = {(K,K),(K,G),(G,K)(G,G)} Sannolikheten för två kronor K är då 1 4, samma som för två gubbar G. Sannolikheten för G och K, en av varje är 1 2. Två av de fyra möjliga utfallen är gynnsamma. Om vi istället singlar slanten 10 gånger och vill bestämma sannolikheten för att K kommer upp 3 gånger? Utfallsrummet består av 2 10 = 1024 utfall. Av dessa innehåller ( ) 10 = 10! 3 3! 7! = 8 9 10 1 2 3 = 120 precis 3 stycken K. Sannolikheten för 3 K blir då 120 1024 = 15 128 0.117 Håkan Strömberg 221 KTH STH
9.9. MER SANNOLIKHETSLÄRA Detta kan vi direkt bestämma genom att använda Binomialfördelningen ( ) n p k q n k k I vårt exempel är n = 10 (antalet kast), k = 3 (antalet lyckade kast ), p = 1 2 (sannolikheten för K) och q = 1 2 (sannolikheten för G). Vi kontrollerar ( 10 3 ) ( 1 2 ) 3 ( ) 1 10 3 = 15 2 128 Exempel 92 Hur stor är sannolikheten för 0...5 stycken sexor när jag kastar en tärning fem gånger? Vi ska nu ersätta k i formeln ovan, i tur och ordning med 0...5. ( 5 k ) ( 1 6 ) k ( ) 5 5 k 6 Sannolikheten för ett lyckat kast är alltså p = 1 6 och för ett misslyckat q = 5 6. Det gäller alltid att p+q = 1, så därför skulle vi kunna ersätta q i formeln med 1 p och få ( ) n p k (1 p) n k k Genom följande rad i Mathematica får vi svaret Table[Binomial[5, k] (1/6)^k (5/6)^(5 - k), {k, 1, 5}] // N {0.401878, 0.160751, 0.0321502, 0.00321502, 0.000128601} 0 eller 1 sexa är överlägset, mest troligt. Sedan avtar förstås sannolikheten vart efter antalet sexor ökar. Håkan Strömberg 222 KTH STH
Exempel 93 Är den vanligaste för delningen av 4 barn i samma familj (2,2), det vill säga två flickor och två pojkar, eller är det (3,1), för det kan väl inte vara (4,0). Vi använder vår nya formel och ska låta k = 0...4 ( 4 k Med Mathematica får vi ) ( 1 2 ) k ( ) 1 4 k 2 Table[Binomial[4, k] (1/2)^k (1/2)^(4 - k), {k, 1, 4}] // N {0.25, 0.375, 0.25, 0.0625} För fördelningen (4,0) 2 0.0625 = 0.125, för (3,1) 2 0.25 = 0.50 att jämföras med (2,2) 0.375. Fördelningen (3,1) är alltså vanligast. Därmed inget sagt om, vilka det finns flest av. Mathematica Vi påminner om urnmodellen. Antal sätt att välja k element bland n. Med hänsyn till ordning Utan hänsyn till ordning Utan återläggning Med återläggning n! n k (n k)! ( n ( n+k 1 ) k) k Vi ska nu med Mathematica generera utfallsrummen för dessa fyra situtioner. Vi väljer n = 4 och k = 2. with(combinat); Utan återläggning Med hänsyn till ordning u = {a, b, c, d}; m = Permutations[u, {2}] Length[m] {{a, b}, {a, c}, {a, d}, {b, a}, {b, c}, {b, d}, {c, a}, {c, b}, {c, d}, {d, a}, {d, b}, {d, c}} 12 M = 4 3 = 12. Med återläggning Med hänsyn till ordning u = {a, a, b, b, c, c, d, d}; m = Permutations[u, {2}] Length[m] {{a,a}, {a,b}, {a,c}, {a,d}, {b,a}, {b,b}, {b,c}, {b,d}, {c,a}, {c,b}, {c,c}, {c,d}, {d,a}, {d,b}, {d,c}, {d,d}} 16 M = 4 2 = 16. I U ingår k element av varje slag. Håkan Strömberg 223 KTH STH
9.9. MER SANNOLIKHETSLÄRA Utan återläggning Utan hänsyn till ordning << Combinatorica u = {a, b, c, d}; m = KSubsets[u, 2] Length[m] {{a, b}, {a, c}, {a, d}, {b, c}, {b, d}, {c, d}} M = ( 4 2) = 6 Med återläggning Utan hänsyn till ordning u = {a, a, b, b, c, c, d, d}; m = Union[Map[Sort, KSubsets[u, 2]]] Length[m] {{a, a}, {a, b}, {a, c}, {a, d}, {b, b}, {b, c}, {b, d}, {c, c}, {c, d}, {d, d}} 10 M = ( 5 2) = 10. Vi startar med att ta fram alla ordnade par med KSubsets[u,2], där vi sedan sorterar varje liten lista. När vi sedan konverterar den stora listan till en mängd, försvinner alla dubbletter. Hockeyfinalen: Experter ansåg att HV71 s chanser att vinna en match mot Linköping i årets hockeyfinal var p = 5 8. Vilket är i så falla det förväntade totala antalet matcher, innan något lag vunnit 4 matcher och därmed blivit svenska mästare 2008? f[] := Block[{lin, hv, i, sum = 0, m}, For[i = 1, i <= 10000, i++, lin = 0; hv = 0; m = 0; While[lin < 4 && hv < 4, m++; If[Random[Real, {0, 1}] < 5/8, hv++, lin++ ] ] If[lin == 4 hv == 4, sum = sum + m ] ]; sum/10000 // N ] f[] 5.6458 Håkan Strömberg 224 KTH STH
Teoriuppgifter Problem 179 Du ska stoppa ner 37 personliga brev i lika många kuvert på vilka du redan skrivit adressen. Om du gör det helt slumpmässigt. Hur stor är då sannolikheten att a) Alla breven hamnar i rätt kuvert b) Alla utom ett hamnar i rätt kuvert c) Alla utom två hamnar i rätt kuvert Problem 180 Adam drog fyra linjer på ett pappersark, som till vänster i figuren. Han vek sedan papperet Figur 9.63: på mitten och bad sedan Bertil parvis förena linjerna. Därefter räckte Bertil över papperet till Adam igen och han förband linjerna på den andra sidan papperet utan att titta på vad Bertil hade gjort. Om linjerna nu är sammanbundna till en enda loop får du 100 kr av mig. Annars får jag 100 kr av dig. OK?, sa Adam. Stopp ett tag så jag får räkna lite, svarade Bertil. Vad kom Bertil fram till, ville han ställa upp på vadslagningen? Problem 181 Bertil blandar en vanlig kortlek medan han förklarar för Adam vad han tänker göra. Jag kommer att dela korten i tre högar och lägga dem på bordet med baksidan upp. Om ett eller flera av de tre korten, som ligger överst i varje hög, är en knekt, dam eller kung, får jag 100 kr av dig. I annat fall är jag skyldig dig 100 kr. Ställer du upp? Ja, svarade Adam utan att räkna på problemet. Gjorde han en korrekt bedömning? Håkan Strömberg 225 KTH STH
9.9. MER SANNOLIKHETSLÄRA Problem 182 Hur många barn ska det minst finnas i en familj, för att sannolikheten ska vara p > 1 2, för att där finns minst en flicka och minst två pojkar? Problem 183 Vilken poängsumma förväntas man få efter 100 kast med en vanlig tärning? Problem 184 Experter ansåg att HV71 s chanser att vinna en match mot Linköping i årets hockeyfinal var p = 5 8. Vilket är i så falla det förväntade totala antalet matcher, innan något lag vunnit 4 stycken och därmed blivit svenska mästare 2008? Problem 185 På casinot finns ett spel som kostar 10 kronor att spela. Det går ut på att singla slant tills gubben dyker upp. Får man gubbe i första kastat får man 1 krona från banken. Kommer gubben upp i andra kastet får man 4 kronor. Här är hela vinstlistan 1,4,9,16,...,n 2 Hur mycket tjänar casinot i långa loppet per omgång på detta spel? Problem 186 Adam och Bertil spelar tärning. Adam kastar först två tärningar. Om sedan Bertil, när han kastar två tärningar, får en tärning som visar samma antal ögon som någon av Adams, så vinner han. I annat fall vinner Adam. Bestäm sannolikheten för att Adam kommer att vinna. Problem 187 Adam och fem andra äventyrare bestämde sig för att spela rysk roulette. Adam drog lotten, att skjuta sist. Sedan började man diskutera om man skulle snurra magasinet en gång, innan man började eller före varje nytt skott. Vilket är bäst för Adam? Problem 188 På hur många sätt kan lagledningen ta ut 3 11-mannalag med ur en grupp på 33 fotbollsspelare? Håkan Strömberg 226 KTH STH
Problemlösning Problemlösning 60. Julpromenaden (2) Medan tomtenissarna väntade på att tomtefar skulle komma hem, tog de tillsammans med tomtemor en julpromenad. De gick hemifrån klockan 15 : 00 och promenerade först på slät mark, sedan uppför en sluttning, därefter nedför sluttningen och slutligen hem Ű hela tiden utan att stanna. De kom hem igen klockan 21 : 00, precis när släden med tomtefar stannade på gårdsplanen. Deras hastighet var 4 km/tim på slät mark, 3 km/tim i uppförsbacke och 6 km/tim i nedförsbacke. Hur lång var deras promenad? Problemlösning 61. MaskSudoku (2) Förutom de vanliga reglerna i Sudoku gäller att pusslet innehåller 18 maskar. De fyra Figur 9.64: talen som får plats i varje mask ska vara sorterade i stigande ordning från svansen fram till huvudet. I de 8 maskarna i yttre ringen anger ögonen i vilken ruta huvudet är beläget. För de övriga 10 maskarna måste du själv avgöra vad som är bak och fram. Problemlösning 62. Att stjäla en skatt (2) Adam, Bertil och Curt tillsammans med hunden Dog planerar att stjäla en skatt, som finns i ett slottstorn i trakten. När männen ska fly uppe ifrån tornet, med skatten, kommer de att använda ett rep, som de placerar i en talja. I var ända av repet finns en korg, i vilka de kan hissas upp eller ner. De måste dock vara försiktiga för om skillnaden i vikt mellan korgarna är mer än 10 kg, så kommer den tyngre av korgarna att nå marken med för hög fart, för de tre männen eller hunden och det finns risk för att passagerarna skadas. Skattkistan däremot klarar en hårdare stöt mot marken. Håkan Strömberg 227 KTH STH
9.9. MER SANNOLIKHETSLÄRA Figur 9.65: Curt väger 105 kg, Adam väger 50, Bertil 60, hunden Dog 10 och skattkistan 30 kg. Hur kan männen och hunden fly tillsammans med skattkistan utan att någon blir skadad? Problemlösning 63. Försenad påskuppgift (2) Här ska du måla de 16 äggen i fyra färger, blåa, gula, gröna och röda, så att när man går Figur 9.66: ett varv i upplägget ska man stöta på alla ordnade par av färger. Bland andra (blå, gul), (röd, grön) (gul, blå) och (röd, röd). Problemlösning 64. Äggröra (2) Adam tog några av de målade äggen från en tidigare uppgift ovan. Han lade 5 gula ägg i påse 1. Av någon anledning plockade han emellertid över ett av dem till påse 2, som innehöll ett okänt antal gröna ägg. Sedan han därefter skakat om påse 2 ordentligt, men försiktigt, tog han upp ett ägg på måfå och stoppade ner detta i påse 1, dock utan att titta på det. Därefter blandade han om äggen i påse 1 ordentligt, tog på måfå ett ägg ur denna, och placerade det återigen utan att se på det i påse 2. Därefter meddelade han sina vänner som fascinerat följt hans märkliga förehavanden att om han nu tog upp ett ägg på måfå ur påse 2 var sannolikheten för att detta skulle visa sig vara ett grön ägg 3/5. Hur många gröna ägg fanns det ursprungligen i påse 2? Håkan Strömberg 228 KTH STH
Problemlösning 65. Hur många finns det kvar? (2) Adam höll en föreläsning om sannolikheter för Bertil och Curt och beslöt sig för att ge en liten praktisk demonstration i ämnet. De här båda påsarna, förklarade han, har samma innehåll. Båda två innehåller 4 blå kulor, 4 röda och 4 gula. Jag kommer nu att, utan att se på kulorna, ta bort exakt så många kulor men inte fler ur påse 1 att jag kan vara säker på att mitt urval inrymmer åtminstone 2 kulor med samma färg, plus åtminstone 1 kula vardera av de båda andra färgerna, och flytta över dem till påse 2. Och nu, förklarade han och slöt återigen ögonen, plockar jag tillbaka exakt så många kulor men återigen inte fler från påse 2 till påse 1 att jag kan vara säker på att det måste finnas åtminstone 3 kulor av varje färg i den första påsen. Hur många kulor lämnade Adam kvar i påse 2? Problemlösning 66. Hinkar (2) Figur 9.67: I figur 9.67, ser vi två hinkar. Den ena rymmer 9 liter och den andra 4 liter. Vi befinner oss nere vid sjön och vårt problem är att mäta upp exakt 6 liter vatten. Det är tillåtet att fylla hinkarna med vatten från sjön, hälla vatten mellan hinkarna och att hälla tillbaka vatten i sjön. Men när vi häller från en hink måste vi fortsätta att hälla tills antingen hinken blir tom eller den andra blir full. Problemlösning 67. Ture tar en promenad (2) Vi återvänder till Ture och Taborti. Den här gången är han ute på en vandring. När han Figur 9.68: kommer till B (se kartan) hittar han en vägvisare där det står R 4 km och W 7 km. När han så småningom kommer fram till R står det där B 2 km och W 3 km på vägvisaren. Till sist kommer han fram till W och totalt förvirrad läser han R 4 km och B 7 km på vägvisaren i W. I vilken stad bor det enbart sanningssägare (S), i vilken bara lögnare (L) och till sist i vilken stad bor de som alternerar mellan att tala sanning och ljuga, (A)? Håkan Strömberg 229 KTH STH
9.9. MER SANNOLIKHETSLÄRA Problemlösning 68. Äggpyramiden (2) Figur 9.69: Till vänster ser vi hur fyra lager läggs tillsammans för att bilda en kvadratisk pyramid. Till höger ser vi den färdiga pyramiden från sidan Figuren visar en kvadratisk pyramid med ägg. Lagren från toppen och nedåt innehåller 1,4,9,16,... ägg. Man vet att ett ägg väger 57 gram och att det håller för ett tryck av 3648 gram. Hur många ägg kan man som mest ha i det understa lagret innan äggen knäcks, om vi antar att alla ägg i ett och samma lager utsätts för samma tryck? Problemlösning 69. Tjocka släkten (2) Ett sällskap på 10 personer består av 1 morfar och 1 mormor, 1 farfar och 1 farmor, 3 fäder och 3 mödrar, 3 söner, 3 döttrar, 2 svärmödrar, 2 svärfäder, 1 måg, 1 svärdotter, 2 bröder och 2 systrar. Hur är detta möjligt? Problemlösning 70. Fotbollsturneringen (2) Fyra stockholmsklubbar deltog i en turnering där alla lagen mötte varandra en gång. Här är slutställningen AIK 3 2 1 0 3-0 7 Brommapojkarna 3 1 2 0 4-2 5 Hammarby 3 1 0 2 5-4 3 Djurgården 3 0 1 2 2-8 1 Den andra kolumnen, efter namnen, står för hur många matcher de spelat. Därefter i tur och ordning: antalet vinster, antalet oavgjorda, antalet förlorade, antal gjorda mål, antal insläppta mål, antal poäng (3 för vinst, 1 för oavgjord och 0 för förlust). Ta reda på hur de 6 matcherna slutade. Problemlösning 71. Tappen ur tunnan (2) En läckande tunna är fylld med öl. I botten finns nämligen ett litet hål där ölen sakta runner ut. 8 studenter kan dricka ur tunnan på en timme, mot att 5 studenter behöver en och en halv timme. Hur lång tid behöver 11 studenter för att dricka upp all öl i tunnan? (Alla studenter dricker lika många liter öl i timmen) Håkan Strömberg 230 KTH STH
Lösningar Teoriuppgifter Lösning Teoriuppgift 179 ( 37 1 a) 0 b) 2) 37! 37! Lösning Teoriuppgift 180 Bertil ville inte ställa upp. Det finns 9 olika kombinationer av bågarna. Av dem vinner Adam i 6 och Bertil i endast 3 fall. Lösning Teoriuppgift 181 Sannolikheten att Bertil förlorar, är samma sak som att alla de tre korten kommer från de 40 omålade korten: ( 40 3 ( 52 3 ) ) = Sannolikhet att Bertil vinner är då Adam borde inte ställa upp. 40! 37!3! 52! 49!3! = 40 39 38 52 51 50 0.44706 1 0.44706 = 0.55294 Lösning Teoriuppgift 182 Vi startar med binomialfördelningen p(n,k) = ( n k )( 1 2 ) k ( ) 1 n k 2 eftersom p = q = 1 2 kan den skrivas Första varianten uttryckt i Mathematica p(n,k) = ( )( n 1 k 2 f[n_, k_] := Binomial[n, k]*(1/2)^k*(1/2)^(n - k) Nu vill vi bestämma sannolikheten för varje fördelning av pojkar och flickor Vi tar då till följande Mathematica-kod ) n (p,f) = (n,0),((n 1),1),((n 2),2)...(0,n) g[n_] := Table[{k, n - k, f[n, k]}, {k, 0, n}] Funktionen producerar en lista med mindre listor som innehåller: antalet pojkar, antalet flickor, sannolikheten för detta. Det minsta antalet barn som kan komma ifråga är 3. g[3] ger listan Håkan Strömberg 231 KTH STH
9.9. MER SANNOLIKHETSLÄRA {{0,3,1/8}, {1,2,3/8}, {2,1,3/8}, {3,0,1/8}} Sannolikheten för att det ska finnas minst en flicka och minst två pojkar är 3 8, som inte är tillräckligt. För g[4] får vi. {{0,4,1/16},{1,3,1/4},{2,2,3/8},{3,1,1/4},{4,0,1/16}} När vi summerar 3 8 + 1 4 = 5 8. Sannolikheten för att det finns minst en flicka och minst två pojkar bland 4 barn är 0.625 > 0.5 Lösning Teoriuppgift 183 ( 100 1 1 6 +2 1 6 +3 1 6 +4 1 6 +5 1 6 +6 1 ) 6 + = 100 21 6 = 350 Lösning Teoriuppgift 184 Om vi markerar med en 1:a för HV71-vinst och 0:a för Linköping-vinst är till exempel serien 10111 möjlig. HV71 tar SM efter 5 matcher. sannolikheten för att just denna serie ska inträffa är 5 8 3 8 5 8 5 8 5 8 = 1875 32768 0.057 Nu finns det 4 sätt för HV71 att vinna efter 5 matcher: 01111, 10111, 11011, 11101 Serien måste ju avslutas med en HV71 vinst. Sannolikheten att serien ska vara avslutat efter 5 matcher med HV71 som segrare är alltså ( ) ( ) 4 5 3 ( ) 5 5 3 8 8 8 0.229 På liknande sätt bestämmer vi så sannolikheten att serien är avslutad efter 4,6 respektive 7 matcher. Samt sannolikheten för att Linköping vinner i 4...7 matcher. Leder till denna formel 6 n=3 5(n+1) 8 ( )( n 5 3 8 ) 3 ( ) 3 n 3 + 8 6 n=3 3(n+1) 8 ( )( n 5 3 8 ) n 3 ( ) 3 3 5.63 8 Lösning Teoriuppgift 185 Vi kan direkt ställa upp följande uttryck ( ) 1 1 +4 2 ( ) 1 2 +9 2 ( ) 1 3 +... 2 för att beräkna spelarens förväntade vinst. Vi har att summera en geometrisk serie ( ) 1 2 i 2 2 i=1 Med Mathematicas hjälp skriver vi och får svaret Håkan Strömberg 232 KTH STH
sum[i^2 (1/2)^i, {i, 1, Infinity}] 6 Det vill säga casinot tjänar 6 kronor per omgång. Lösning Teoriuppgift 186 Vi måste skilja på två fall: (1) Adam kastar en dubbel (2) Adam kastar inte en dubbel. Figur 9.70: Sannolikheten att Adam ska kasta en dubbel är 1 11 6. Bertil har nu q = 36 att en av tärningarna visar samma antal ögon som Adams båda (räkna rutor i figuren). Sannolikheten att Bertil vinner om Adam kastar en dubbel är därför: 1 6 11 36 = 11 216. Bertil har nu sannolikheten q = 20 36 Sannolikheten att Adam inte kastar en dubbel är 30 36 = 5 6 att en av tärningarna överensstämmer med en (eller båda) av Adams (räkna rutor igen). Det ger sannolikheten 5 6 20 36 = 100 216 Totalt ger det 11 216 + 100 216 = 111 216 0.514 Bertil har alltså störst chans att vinna. Håkan Strömberg 233 KTH STH
9.9. MER SANNOLIKHETSLÄRA Lösning Teoriuppgift 187 Om man snurrar magasinet en gång har alla deltagarna inklusive Adam sannolikheten p = 1 6 förlora. Om man snurrar magasinet inför varje skott är sannolikheten att alla framför Adam har klarat sig ( ) 5 5 6 Sannolikheten att Adam ska förlora ( ) 5 1 6 6 = 0.067 att jämföra med 1 6 0.167. Han har 10% större chans att överleva om magasinet surras inför varje skott. Med denna metod finns ju sannolikheten att ingen förlorar. Lösning Teoriuppgift 188 ( 33 )( 22 11 11 3! ) = 22754499243840 Till första laget har vi 33 spelare att välja ifrån. Återstår sedan 22 spelare för att formera nästa lag. Man dividerar med 3!, eftersom man inte gör någon skillnad på det tre lagen (utan hänsyn tagen till ordningen). Hade det istället varit frågan om att formera ett A-, B- och C-lag skulle vi inte ha dividerat med 6. Laboration Laborationsuppgift 85. De tre sista siffrorna (2) De tre sista siffrorna i ett tal t är...x25. Vilka värden 0...9 kan x anta om man vet att t är en heltalskvadrat? Laborationsuppgift 86. Hur många lösningar (2) Vi har följande tre mängder Hur många lösningar har ekvationen om x A,y B och z C? A = {1,2,3,4,5,6,7} B = {8,9,10,11,12,13,14} C = {15,16,17,18,19,20,21} x+y+z = 31 Laborationsuppgift 87. Formel för primtal? (2) Vi utgår från polynomet p(n) = n 2 +n+41 och bestämmer p(n) för n = 0... m. Bestäm m så att p(n) alla är primtal. Håkan Strömberg 234 KTH STH
Laborationsuppgift 88. Rangordna (2) Vi har fyra heltal a,b,c,d. Allt vi vet är att a b < c d < 1 Kan du med utgångspunkt från detta rangordna följande fem uttryck efter stigande värde? b a, d c, bd ac, b+d a+c, 1 Laborationsuppgift 89. Produkt av primtal (2) n är produkten av 5 olika udda primtal. Talet n innehåller tre olika siffror a,b och c och dess utseende kan beskrivas med abcab. Hur många tal n finns det? Laborationsuppgift 90. Stigande ordning (2) n lappar, med talen 1...n skrivna på dem, läggs i en hatt. Man drar 4 lappar ur hatten (utan återläggning). Hur stor är sannolikheten att talen på lapparna dras i stigande ordning. Beräkna exakta värdet för n = 4...9. (2 extra poäng om du kan ange en formel för n) Laborationsuppgift 91. Kulor ur hatten (2) När man på en gång drar 2 kulor ur hatten är sannolikheten 1 3 att de båda är svarta. När man däremot drar 3 kulor är sannolikheten 1 6 att alla är svarta. Hur många svarta respektive vita kulor finns det i hatten? Laborationsuppgift 92. Tills en svart (2) I en urna finns 12 vita bollar och 3 svarta. Du får dra bollar ur urnan tills du drar en svart boll. Du får 25 kronor för varje vit boll du drar. Hur mycket kan du förvänta dig att vinna? Laborationsuppgift 93. Växla en hundralapp (2) Hur många kombinationer av mynt och sedlar finns det där summan är 100 kronor, om de tillåtna valörerna 1, 5, 10, 20, 50 kronor? Laborationsuppgift 94. Att dra fyra ess (2) Att från en vanlig kortlek, med 52 kort, dra 4 kort (utan återläggning) där alla är ess har 1 chans på 270725 att lyckas. Genom att plocka bort kort som inte är ess från leken ökar man chansen att få 4 ess. Hur många kort (tillsammans med de fyra essen) ska man ha i kortleken för att sannolikheten att dra de fyra essen ska bli så nära 1 chans på 1000 som möjligt? Håkan Strömberg 235 KTH STH
9.9. MER SANNOLIKHETSLÄRA Laborationsuppgift 95. Identifiera x och y (2) Uttryck x och y i r och k så att detta samband gäller ( ) r = x ( ) r 1 k y k 1 Håll utkik i Pascals triangel Laborationsuppgift 96. Funktion som generar permutationer (4) Skriv en funktion i C som implementerar följande algoritm för att generera permutationer. Algoritmen är hämtad från Handbook of Discrete and Combinatorial Mathematics. Algorithm Generate the permutations of 1... n in lexicographic order. a 1 a 2...a n := 1 2...n while a 1 a 2...a n n n 1... 1 m :=the rightmost location such that a m is followed by a larger number a 1 a 2...a m 1 = a 1a 2...a m 1 {retain everything to the left of a m } a m :=the smallest number larger than a m to the right of a m a m+1 a m+2...a n := everything else, in ascending order a 1 a 2...a n := a 1 a 2...a n output a 1 a 2...a n Håkan Strömberg 236 KTH STH
Dagens Teori 10.10 Summor och talföljder 10.10.1 Talföljder En talföljd är en uppräkning av tal a 1,a 2,a 3,...a n här n stycken. Ofta kan talföljder skrivas på ett mer kompakt sätt, som dessa oändliga talföljder 1,2,3,4,5,... {n} 1,4,9,16,25,... {n 2 } 1,9,27,81,243,... {3 n } 1,r,r 2,r 3,r 4,... {r n } Ibland har talföljder namn, främst för att de är ofta förekommande, som till exempel: Fibonacci, Catalan eller Binomial. Vi återkommer till dessa längre fram. Om talföljden är ändlig skriver man den ibland på denna kompakta form {i 2} 5 i=1 = 1,4,9,16,25 För en oändlig talföljd används tecknet för oändligheten,, som till exempel {i} i=1 = 1,2,3,4,5... Speciell hemsida för talföljder Följder av heltal klassificeras på hemsidan The On-Line Encyclopedia of Integer Sequences http://www.research.att.com/~njas/sequences/. Idag finns fler än 100 000 talföljder registrerade. När jag skriver in mitt telefonnummer 7,1,2,8,4,0,5 svarar sökmotorn med: Håkan Strömberg 237 KTH STH
10.10. SUMMOR OCH TALFÖLJDER Search:7,1,2,8,4,0,5 A010628 Decimal expansion of cube root of 57 3, 8, 4, 8, 5, 0, 1, 1, 3, 1, 2, 7, 6, 8, 0, 5, 0, 6, 8, 7, 0, 2, 2, 9, 0, 2, 5, 9, 5, 2, 5, 0, 2, 5, 3, 1, 7, 1, 2, 8, 4, 0, 5, 5, 2, 2, 7, 7, 5, 4, 6, 1, 2, 1, 0, 6, 2, 6, 7, 9, 7, 7, 2, 0, 1, 3, 6, 7, 6, 8, 9, 1, 8, 2, 7, 6, 9, 2, 3, 4, 5, 6, 9, 6, 9, 9, 8, 6, 2, 0, 7, 4, 3, 2, 5, 2, 8, 6, 5 Tittar man närmare i utskriften, så kan man konstatera att 7128405 som en delsekvens från den 37:e talet och framåt. Några andra roliga (?) talföljder 3 57 mycket riktigt innehåller a) M0679 2,3,5,7,23,67,89,4567,78901,678901,23456789... b) M1041 1,2,4,7,11,16,22,29,37... c) M0180 1,0,0,1,2,1,6,12,46,92,341... d) A006577 0,1,7,2,5,8,16,3,19,6,14,9,9,17... a Primtal med konsekutiva siffror. Efter 9 kommer 0. Det största kända i den givna följden är 90123456789012345678901234567. b Ger det maximala antalet bitar man kan få genom att snitta en pannkaka n gånger c Antalet möjligheter att placera ut n damer på ett n n stort schackbräde. så att inga damer står i slag för varandra. d Antal steg i Ulam s problem innan n når 1 Figur 10.71: Ett av184 olika sätt att placera två löpare av olika färg på ett 4 4 bräde, så att de inte står i slag för varandra Exempel 94 Vi vill ta reda på antalet sätt att placera ut två olikfärgade löpare, som inte står i slag för varandra, på ett n n stort bräde. Kanske skriver vi ett C-program för detta. Hur som helst får vi följande talföljd för 1 n 14 0,8,52,184,480,1040,1988,3472,5664,8760,12980,18568,25792,34944 Vi söker nu ett sätt att skriva denna talföljd på ett kompaktare sätt och tar Mathematica till hjälp Håkan Strömberg 238 KTH STH
m = {{1, 0}, {2, 8}, {3, 52}, {4, 184}, {5, 480}, {6, 1040}, {7, 1988}, {8, 3472}, {9, 5664}, {10, 8760}, {11, 12980}, {12, 18568}, {13, 25792}, {14, 34944}}; Fit[m, {1, x, x^2, x^3, x^4}, x] -5.92374*10^-12-0.666667 x + 1. x^2-1.33333 x^3 + 1. x^4 Vi har här, i minsta kvadratmetodens mening, anpassat de 14 mätpunkterna (1, 0),(2, 8),(3, 52),...(14, 34944) till ett fjärdegradspolynom, f(n) = a+b n+c n 2 +d n 3 +e n 4 där vårt svar är polynomets koefficienter a,b,c,d,e. Svaret kan (med hög sannolikhet) skrivas exakt som: f(n) = 3n4 4n 3 +3n 2 2n 3 Testar vi denna funktion för de givna värdena stämmer de alla exakt. f[n_] := (3 n^4-4 n^3 + 3 n^2-2 n)/3 Table[f[n], {n, 1, 14}] f[34] {0, 8, 52, 184, 480, 1040, 1988, 3472, 5664, 8760, 12980, 18568, 25792, 34944} 1285064 Dessutom har vi ett extra värde, f(34) = 1285064, och när även detta stämmer tror vi oss kunna skriva talföljden { 3n 4 4n 3 +3n 2 } 2n 3 n=1 Men observera att vi inte har bevisat något. Vi lyckades här därför att vi gissade att talföljden skulle kunna beskrivas som ett polynom. Det hade inte varit någon större skada skedd om vi gissat att polynomet var av 5:e graden, eftersom motsvarande koefficient i så fall blivit 0. Kan man lita på sådana resultat? Nej, formeln ovan måste bevisas, för att kunna användas i matematiken. Till detta använder man ofta induktionsbevis Vi tar ett exempel: Vi har en rekursionsformel a n+1 = a n +a n 1 +a n 2 +a n 3 +a n 4 där a 4 = a 3 = a 2 = a 1 = 0 och a 0 = 1. Sätter vi n = 0 får vi a 1 = a 0 +a 1 +a 2 +a 3 +a 4 = 1+0+0+0+0 = 1 a 1 = 1. Nu kan vi räkna ut a 2 genom Vi fortsätter med a 3 a 2 = a 1 +a 0 +a 1 +a 2 +a 3 = 1+1+0+0+0 = 2 a 3 = a 2 +a 1 +a 0 +a 1 +a 2 = 2+1+1+0+0 = 4 Håkan Strömberg 239 KTH STH
10.10. SUMMOR OCH TALFÖLJDER och a 4 = a 3 +a 2 +a 1 +a 0 +a 1 = 4+2+1+1+0 = 8 Vi gissar nu att a 5 = 16 och a 6 = 32 och kollar bara för säkerhets skull a 5 = a 4 +a 3 +a 2 +a 1 +a 0 = 8+4+2+1+1 = 16 a 6 = a 5 +a 4 +a 3 +a 2 +a 1 = 16+8+4+2+1 = 31 32 Vi drog alltså förhastade slutsatser. 10.10.2 Rekursiva definitioner av talföljder En talföljd kan framställas med en rekursiv definition. Här ett exempel a n = 3a n 1 2a n 2 där a 1 = 3 och a 2 = 7. nu kan vi bestämma a 3 a 3 = 3a 2 2a 1 = 3 7 2 3 = 21 6 = 15 När vi nu har a 3 = 15 kan vi bestämma a 4 och så vidare så långt vi vill. En iterativ funktion i Mathematica ger oss de 10 första talen i följden. f[] := Block[{a1 = 3, a2 = 7, a3, L = {3, 7}}, While[Length[L] < 10, a3 = 3 a2-2 a1; AppendTo[L, a3]; a1 = a2; a2 = a3; ]; L ] f[] {3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047} En rekursiv funktion i Mathematica som bestämmer a n g[1] := 3 g[2] := 7 g[n_] := 3 g[n - 1] - 2 g[n - 2] Table[g[n], {n, 1, 10}] {3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047} Rekursion kommer vi att syssla mer med i kursen Algoritmer och Datastrukturer. Normalt tycker man att det är bättre med en sluten funktion som direkt ger a n och som endast beror av n. Håkan Strömberg 240 KTH STH
Exempel 95 Rekursionsformeln där a 0 = 0 ger talföljden Med formeln får vi direkt a n. a n = a n 1 +n 1,3,6,10,15,... a n = n(n+1) 2 Det kan vara svårt att lösa rekursionsformeln. Speciellt i den här kursen har vi inte tid att fördjupa oss i hur man utför detta. Istället har vi i Mathematica RSolve som utför jobbet. RSolve[{a[n] == a[n - 1] + n, a[0] == 0}, a[n], n] {{a[n] -> 1/2 n (1 + n)}} eller snyggare a n = n(n+1) 2 Exempel 96 Vi löser vårt inledande exempel med RSolve där a 1 = 3 och a 2 = 7. a n = 3a n 1 2a n 2 RSolve[{a[n] == 3a[n-1] - 2a[n-2], a[1] == 3, a[2] == 7}, a[n], n] som ger a n = 2 n+1 1 10.10.3 Fibonacci talföljd Definition 27 F n = F n 1 +F n 2 där F 0 = 0 och F 1 = 1. Här de första talen i följden 0,1,1,2,3,5,8,13,21,... Leonardo från Pisa eller Fibonacci, som han oftare kallas, betraktas som Europas förste matematiker. Han har bland annat givit sitt namn till denna talföljd. Ett problem i kapitel tre av Fibonaccit s Liber abbaci ledde till introduktionen av talföljden: Håkan Strömberg 241 KTH STH
10.10. SUMMOR OCH TALFÖLJDER En man lät placera ett par kaniner i en inhägnad trädgård. Hur många par av kaniner kan under ett år produceras, med utgång från detta par, om vi antar att varje par nedkommer med ett nytt par varje månad från och med att paret uppnått två månaders ålder? Första och andra månaden finns bara det ursprungliga paret, 1,1. Månad tre och fyra föds ett nytt par. Vi har nu 1,1,2,3. Den femte månaden föds två par och månad sex tre par... Eftersom alla kaninerna överlever kommer det att finnas f 11 = 144 par med kaniner efter ett år Löser vi rekursionsekvationen med hjälp av rsolve får vi det överraskande svaret ( 1+ ) n 5 1 ( ) n 5 2 2 F n = 5 Den slutna formen för Fibonacci talföljd som direkt ger oss F n för önskat n. Ett resultat vi kan få genom RSolve[{f[n] == f[n+1] + f[n+2], f[0] == 0, f[1] == 1}, f[n], n] En rekursiv variant är inte speciellt effektiv f[0] := 0 f[1] := 1 f[n_] := f[n-1] + f[n-2] f[10] 55 10.10.4 Catalanska tal De Catalanska talen, uppkallade av Eugene Catalan 1814-1894 dyker upp i en mängd olika kombinatoriska strukturer. Definition 28 Rekursionsformel för de catalanska talen är för n 1 och med C 0 = 1 Exempel 97 Vi räknar fram några C n. C n = C 0 C n 1 +C 1 C n 2 +C 2 C n 3 +...+C n 1 C 0 C 1 = C 0 C 0 = 1 1 = 1 C 2 = C 0 C 1 +C 1 C 0 = 1 1+1 1 = 2 C 3 = C 0 C 2 +C 1 C 1 +C 2 C 0 = 1 2+1 1+2 1 = 5 C 4 = C 0 C 3 +C 1 C 2 +C 2 C 1 +C 3 C 0 = 1 5+1 2+2 1+5 1 = 14 Här har vi de 11 första catalanska talen 1,1,2,5,14,42,132,429,1430,4862,16796,58786 Håkan Strömberg 242 KTH STH
Exempel 98 Här illustrerar vi fem till synes olika kombinatoriska strukturer där man använder catalanska tal för att bestämma antalet kombinationer. Figur 10.72: Antalet möjligheter att utföra en triangulering av en konvex polygon med n sidor är C n 2. C 3 = 5 Figur 10.73: Antalet möjligheter att förbinda 2n punkter på en cirkel så att ingen korda skär någon annan är C n. C 3 = 5 Figur 10.74: Antalet olika binära träd med n noder är C n. C 3 = 5 Antalet möjligheter att kombinera 2n parentespar till välformade uttryck är C n. C 3 = 5 ()()() ()(()) (())() (()()) ((())) Med n loopar konstruerade som i exemplet nedan kommer s att till slut få värdet C n. C 3 = 5 int a,b,c,s=0; for(a=1;a<=1;a++) for(b=1;b<=a+1;b++) for(c=1;c<=b+1;c++) s++; Det finns några mer direkta sätt att bestämma C n C n = 1 ( ) 2n n+1 n eller C n = ( ) ( ) 2n 2n n n 1 Håkan Strömberg 243 KTH STH
10.10. SUMMOR OCH TALFÖLJDER En annan rekursiv formel för att bestämma C n där endast C n 1 behövs 10.10.5 Euler tal C n = 2(2n+1) n+2 C n 1 π = (3,5,1,4,6,2) talföljden ovan är en permutation av 1,2,3,4,5,6. Om vi räknar antalet tillfällen då π i < π i+1, som vi kallar för stigning, hittar vi 3 stycken, 3 < 5,1 < 4,4 < 6. Skulle vi gå igenom samtliga 6! = 720 permutationer av talen 1,2,3,4,5,6 skulle vi hitta 302 permutationer med precis 3 stigningar. Vi skriver då E(6,3) = 302. Skrivs också 6 = 302 3 Talen n k kan liksom ( n k) visas i en triangel 1 1 1 1 4 1 1 11 11 1 1 26 66 26 1 1 57 302 302 57 1 1 120 1191 2416 1191 120 1 För n 2 kan man bestämma en rad i triangeln med hjälp av raden ovanför. n n 1 n 1 = (k+1) +(n k) k k k 1 Summan av elementen i rad n är förstås n!. Här följer en funktion i Mathematica, som tar fram den n:te raden i triangeln ovan. f[n_] := Block[{P, R, p, i, s}, P = Permutations[Range[n]]; R = Table[0, {i, 1, n}]; For[i = 1, i <= Length[P], i++, s = 0; p = P[[i]]; For[j = 1, j <= n-1, j++, If[p[[j]] < p[[j+1]], s++; ] ]; R[[s+1]]++; ]; R ] f[6] {1, 57, 302, 302, 57, 1} Håkan Strömberg 244 KTH STH
10.10.6 Graykoder En Gray kod av storleken n, är en ordnad lista av 2 n binära strängar av längden n, där två på varandra följande strängar skiljer sig i endast ett tecken. Här är graykod för n = 3. Med hjälp av Mathematica får vi 000,100,110,010,011,111,101,001 << Combinatorica m = GrayCode[{1, 2, 3}] {{}, {3}, {2,3}, {2}, {1,2}, {1,2,3}, {1,3}, {1}} Vi kan se hur element försvinner och kommer till. Endast en förändring från mängd till mängd. Vill vi ha det utskrivet som binära strängar får vi skriva lite mer f[n_] := Block[{i, j, t, s, L = {}, m}, m = GrayCode[Range[n]]; For[i = 1, i <= Length[m], i++, t = m[[i]]; s = Characters[IntegerString[0, 2, n]]; For[j = 1, j <= Length[t], j++, s[[t[[j]]]] = "1"; ]; AppendTo[L, StringJoin[s]]; ]; L ] f[3] {"000", "001", "011", "010", "110", "111", "101", "100"} Villkoren är uppfyllda, men en annan lösning än den inledande. 10.10.7 Talföljder med geometrisk bakgrund Triangeltal Figur 10.75: En formel som ger T(n) för givet n 1,3,6,10,15,... T(n) = n(n+1) 2 Håkan Strömberg 245 KTH STH
10.10. SUMMOR OCH TALFÖLJDER Figur 10.76: Pyramidtal med triangulär bas 1,4,10,20,35,56,... Vi söker en formel som direkt ger P T (n) där n är pyramidens höjd. m = {{1,1}, {2,4}, {3,10}, {4,20}, {5,35}, {6,56}}; Fit[m, {1, x, x^2, x^3, x^4}, x] 3.82584 10 15 +0.333333x +0.5x 2 +0.166667x 3 3.91979 10 16 x 4 Av detta resultat är det mycket troligt att formeln har följande utseende Pyramidtal med kvadratisk bas P T (n) = n3 6 + n2 2 + n 3 = n(n+1)(n+2) 6 Figur 10.77: 1,5,14,30,55,91,... Vi söker en formel som direkt ger P K (n) där n är pyramidens höjd. Vi väljer här en annan metod än den ovan T K (n) är summan av n heltalskvadrater, till exempel T K (4) = 1+4+9+16 = 30. Med hjälp av Mathematica kan vi direkt skriva f[n_] := Sum[i^2, {i, 1, n}] f[n] ger T K (n) = n3 3 + n2 2 + n 6 Håkan Strömberg 246 KTH STH
10.10.8 Serier eller summor 1+2+3+4+5+...+10 är en serie vars summa är 55. Inom matematiken använder man en mer koncist sätt att uttrycka denna summa 10 i Summan 1+2+3+...+n i=1 Följande historia berättas om Carl Friedrich Gauss, en av historiens största matematiker: Självklart visade Gauss redan under tidiga skolår sin matematiska förmåga och när han som vanligt snabbt klarat av dagens uppgifter, gav den irriterade läraren honom i uppgift att summera alla tal från 1 till 100. Carl Friedrich behövde inte mer än någon minut för att på sin griffeltavla direkt skriva ned talet 5050. Hur bar han sig åt? Om vi skriver om följden av termer som 1+2+3+4+...+96+97+98+99+100 (1+99)+(2+98)+(3+97)+(4+96)+...+(49+51)+50+100 kan detta enkelt skrivas som 49 100+50+100 = 5050 Vi påstår nu att serien i rubriken kan skrivas som n i = n(n+1) 2 i=1 Detta ska vi nu bevisa med hjälp av induktion. a Vi ser direkt att formeln stämmer för n = 1 b Antag att den stämmer för n = k, då får vi formeln från ovan k i = k(k+1) 2 i=1 Om vi nu lägger till k+1 på båda sidor för att visa att formeln gäller även för k+1, får vi k (i)+k+1 = k(k+1) +k+1 2 i=1 Kan vänstra sidan skrivas om till och högra sidan till k(k+1) 2 k+1 (i) i=1 +k+1 k(k+1) 2 Därmed har vi bevisat att denna formel alltid gäller + 2(k+1) 2 (k+1)(k+2) 2 Håkan Strömberg 247 KTH STH
10.10. SUMMOR OCH TALFÖLJDER Mathematica I Mathematica använder vi funktionen Sum. För några av summorna i exemplen ovan skriver vi Sum[i, {i, 1, 100}] Sum[2 i, {i, 1, 6}] Sum[i^2, {i, 1, 6}] Funktionen kan även användas för den övre gränsen n Sum[i,{i,1,n}] Sum[i^2, {i, 1, n}] n(n+1) 2 Vi får här formeln för n i=1 Dessa två formler kan bevisas med induktion. i 2 = n3 3 + n2 2 + n 6 Teoriuppgifter Problem 189 1,2,4,8,16,31,... Förekommer denna talföljd, som vi presenterade i teorin, någonstans? Du kan kanske inte direkt avgöra det och behöver fler tal i följden. Använd C, Mathematica eller räkna för hand, för att ta reda på fler tal. Har talföljden något egenvärde enligt Uppslagsverket över heltalssekvenser? Håkan Strömberg 248 KTH STH
Problem 190 Bestäm det fjärdegradspolynom, som exakt går genom punkterna p(x) = a x 4 +b x 3 +c x 2 +d x+e (10, 2625),(18, 26737),(22, 59337),(50, 1567025),(54, 2131081),(100, 25019025) Problem 191 Ta med hjälp av Uppslagsverket över heltalssekvenser på internet reda på nästa tal i följden 9227465, 14930352, 24157817 Problem 192 En talföljd börjar 2,12,1112,3112,132112,1113122112,... Vilket är nästa tal? Använd Uppslagsverket över heltalssekvenser om du inte kan komma på det! Problem 193 Ta reda på vad talföljden 1,1,1,2,5,12,35,108,369,... har för bakgrund. Mer specifikt, vad står talet 5 för? Använd i första hand Uppslagsverket över heltalssekvenser med angivna länkar men även Google. Problem 194 Ta reda på lite om talföljden 1,1,2,4,9,21,51,127,323,835,2188,... Rita upp de 9 fall då det finns n = 4 punkter på cirkeln. Klipp ut och klistra in lämplig Mathematica-kod från sidan och se att du kan generera följden. Observera att vi ännu inte berört alla de funktioner som finns i koden. Problem 195 Bestäm med hjälp av Mathematica en formel för n i=1 i 3 Håkan Strömberg 249 KTH STH
10.10. SUMMOR OCH TALFÖLJDER Problem 196 Bestäm med Mathematica en formel för b i i=a I en aritmetisk serie är differensen mellan en term oh närmast föregående konstant. Problem 197 Bestäm en formel för 1+3+5+7+9+...+(2n+1) Problem 198 Bestäm med Mathematica och sum Försök nu bestämma en formel för en serie 8+13+18+23+28+33+38+43 a 1 +a 2 +...+a n där a j+1 a j = d och a 1 är givet. Bestäm med hjälp av denna formel summan av serien ovan. Problem 199 Använd Mathematica för att bestämma hur många termer man behöver ta med i Harmoniska serien 1 1 + 1 2 + 1 3 + 1 4 + 1 5 +... för den ska ha en summa som överstiger 4 10 15 Problem 200 Uttryck den rekursiva formeln på sluten form där a 0 = 7 och a 1 = 16. a n = 5a n 1 6a n 2 Problem 201 Fibonaccitalet F n är medelvärdet av två andra Fibonaccital vilka? Håkan Strömberg 250 KTH STH
Problem 202 Uttryck summan med hjälp av summationstecknet 5+6+7+8+9 Problem 203 Uttryck summan med hjälp av summationstecknet 2+4+6+8+10+12 Problem 204 Uttryck summan med hjälp av summationstecknet 1+4+9+16+25+36 Problem 205 Uttryck summan med hjälp av summationstecknet 2 4+8 16+32 64 Problem 206 Uttryck summan 1 3 3 4 + 5 5 7 6 + 9 7 med hjälp av summationstecknet Lösningar Teoriuppgifter Lösning Teoriuppgift 189 Vi tar till en rekursiv funktion och skriver ut 10 tal f[0] := 1 f[-4] := 0 f[-3] := 0 f[-2] := 0 f[-1] := 0 f[n_] := f[n-1] + f[n-2] + f[n-3] + f[n-4] + f[n-5] Table[f[n],{n, 1, 10}] {1, 2, 4, 8, 16, 31, 61, 120, 236, 464} Detta räcker för att ta reda på att talföljden kallas Pentanacci numbers. a n 1 bestämmer antalet möjligheter att skriva n som en summa av tal där inget tal får överskrida 5. n = 8 är tre av 61 möjligheter 1+1+1+1+1+1+1+1 = 8, 2+2+1+1+1+1 = 8 och 5+3 = 8 Håkan Strömberg 251 KTH STH
10.10. SUMMOR OCH TALFÖLJDER Lösning Teoriuppgift 190 m = {{10, 2625}, {18, 26737}, {22, 59337}, {50, 1567025}, {54, 2131081}, {100, 25019025}}; Fit[m, {1, x, x^2, x^3, x^4}, x] 25. - 10. x + 2. x^2-1.23984*10^-12 x^3 + 0.25 x^4 f[x_] := 25-10x+2x^2+x^4/4; Map[f, {10, 18, 22, 50, 54, 100}] {2625, 26737, 59337, 1567025, 2131081, 25019025} Lösning Teoriuppgift 191 39088169 ett fibonaccital. Lösning Teoriuppgift 192 311311222112 som är en beskrivning av föregående tal 1113122112, som består av 3 stycken 1:or, 1 stycken 3:a, 1 stycken 1, 2 stycken 2:or, 2 stycken 1:or och 1 stycken 1:a, som bildar vårt tal! Lösning Teoriuppgift 193 Antalet möjligheter att sätta samman n kvadrater till olika pusselbitar. Figur 10.78: För fyra kvadrater finns det fem möjligheter. Man får alltså både vrida och vända på bitarna. Håkan Strömberg 252 KTH STH
Lösning Teoriuppgift 194 Figur 10.79: Ett annat sätt att visa ett Motzkin tal Lösning Teoriuppgift 195 Expand[Sum[i^3, {i, 1, n}]] n i=1 i 3 = n4 +2n 3 +n 2 4 Lösning Teoriuppgift 196 Sum[i, {i, a, b}] b i=a i = a+b 2 (b+1 a) Lösning Teoriuppgift 197 Sum[2 i + 1, {i, 0, n}] Sum[i, {i, 1, 2 n + 1, 2}] 1+3+5+7+9+...+(2n+1) = (n+1) 2 Håkan Strömberg 253 KTH STH
10.10. SUMMOR OCH TALFÖLJDER Lösning Teoriuppgift 198 Sum[a + b*d, {d, 1, n}] f[a_, b_, n_] := a*n + b*n^2/2 + b*n/2 f[0,2,4] 20 n i=1 a+i b = an+ bn2 2 + bn 2 Lösning Teoriuppgift 199 f[n_] := Block[{summa = 0, tal = 0}, While[summa < n, tal++; summa = summa + 1/tal; ]; tal ] f[4] 31 g[n_] := Block[{summa = 0, tal = 0}, While[summa < n, tal++; summa = summa + N[1/tal, 100]; ]; tal ] g[12] 91380 Håkan Strömberg 254 KTH STH
Lösning Teoriuppgift 200 RSolve[{a[n] == 5a[n-1] - 6a[n-2],a[0] == 7,a[1] == 16}, a[n], n] a n = 5 2 n +2 3 n Lösning Teoriuppgift 201 Koll F n = F n 2 +F n+1 2 Table[{Fibonacci[n],(Fibonacci[n-2]+Fibonacci[n+1])/2},{n,1,20}] Lösning Teoriuppgift 202 9 k k=5 Lösning Teoriuppgift 203 6 2i i=1 Lösning Teoriuppgift 204 6 n=1 n 2 Lösning Teoriuppgift 205 6 ( 1) i+1 2 i i=1 Håkan Strömberg 255 KTH STH
10.10. SUMMOR OCH TALFÖLJDER Lösning Teoriuppgift 206 6 i+1 2i 1 ( 1) i+2 i=1 Laboration Laborationsuppgift 97. Udda catalanska tal (2) Vad kan sägas om n då C n är ett udda tal? Laborationsuppgift 98. Summan av fibonaccital (2) Uttryck denna summa n k=0 i en formel med hjälp av bland annat ett fibonaccital. F n Laborationsuppgift 99. En summa till av fibonaccital (2) Uttryck denna summa n k=0 i en formel med hjälp av ett fibonaccital. F 2k+1 Laborationsuppgift 100. Näst sista summan av fibonaccital (2) Uttryck denna summa n i en formel med hjälp av fibonaccital. k=0 F 2 k Laborationsuppgift 101. En sista summa av fibonaccital (2) Uttryck denna summa n F 2k 1 F 2k k=1 i en formel med hjälp av bland annat ett fibonaccital. Laborationsuppgift 102. Vilket fibonaccital (2) Vilket fibonaccital ska stå på frågetecknets plats? F 2 n +F2 n+1 =? Håkan Strömberg 256 KTH STH
Laborationsuppgift 103. Fibonacci i Pascals triangel (2) Fibonacci tal dyker upp som summor i Pascals triangel. Visa på exempel. Laborationsuppgift 104. Sista siffran (2) Om man bara studerar sista siffran i fibonacci talen, följer de ett mönster som upprepas efter n tal. Bestäm n. Laborationsuppgift 105. En matrispotes (2) Beräkna ( 1 1 1 0 och upptäck något som har med fibonacci tal att göra. I Mathematica definieras matrisen A på följande sätt a={{1, 1},{1, 0}} MatrixPower[a,n] ) n Laborationsuppgift 106. Definiera funktion (2) Definiera följande funktion i Mathematica f(a,b) = b ( ) a+1 ( 1) j (b+1 j) a j j=0 Ta fram några värden och försök identifiera dem Laborationsuppgift 107. Ett gränsvärde (2) I första matematikkursen lärde du dig att beräkna till exempel I Mathematica löser vi detta problem genom (3x+1)(5x+2) lim = 15 x > x(x+1) Limit[(3*x+1)*(5*x+2)/(x*(x+1)), x->infinity] 15 Bestäm nu gränsvärdet F n+1 lim n > F n Vad heter detta gränsvärde? Sök talet på nätet med lagom många decimaler. Laborationsuppgift 108. Strängar med 0:or och 1:or (3) Generera och räkna antalet binära strängar med n tecken och där aldrig två 0:or följer på varandra. Uttryck detta antal med hjälp av ett fibonacci tal Håkan Strömberg 257 KTH STH
11.11. GRAFER Dagens Teori 11.11 Grafer 11.11.1 Vad är en graf? Figur 11.80: En enkel graf med fem noder och sex bågar Definition: En graf består av två ändliga mängder V och E där V är mängden av noder (hörn, vertices) och E är mängden av bågar (kanter, edges). Vi skriver G = (V(G),E(G)). Nedan ser vi en graf med 5 noder och 6 bågar. Ger vi noderna namn, som i figur 11.81 kan vi skriva beskriva G utan att ta till någon figur: Figur 11.81: Noderna har fått namn G = ({A,B,C,D,E},{(A,B),(A,D),(B,D),(B,C),(B,E),(C,E)}) Först alltså en mängd med noder och sedan en mängd med bågar. Där varje båge består av ett par nodnamn. Figur 11.82: En graf med en loop och med multipla bågar Håkan Strömberg 258 KTH STH
Den graf vi presenterat i figurerna ovan är en enkel graf till skillnad från den i figur 14.160, som har både en loop och multipla bågar. Alla grafer vi kommer att befatta oss med i denna kurs är enkla grafer. Det antal noder en graf G innehåller, bestämmer grafens ordning, betecknas n(g) I Mathematica kan vi definiera och ritar en graf genom << GraphUtilities g = {"Adam" -> "Bertil", "Bertil" -> "Curt", "David" -> "Bertil", "Erik" -> "Adam"}; GraphPlot[g, VertexLabeling -> True] Vi startar med att inkludera GraphUtilities och definiera grafen g. Kommandot GraphPlot ger en bild över grafen. Genom VertexLabeling -> True får vi med nodernas namn. Erik Adam David Bertil Curt Figur 11.83: Vill vi definiera grafen i figur 11.81 skriver vi alltså och vi får g1 = {"A" -> "B", "A" -> "D", "B" -> "D", "B" -> "C", "B" -> "E", "C" -> "E"}; GraphPlot[g1, VertexLabeling -> True] C A B E D Figur 11.84: Några exempel på grafer I figur 11.88 ser vi de olika typer av grafer som är definierade. Vi endast att diskutera enkla grafer och strikta digrafer. Riktat graf är en synonym till digraf. Håkan Strömberg 259 KTH STH
11.11. GRAFER Figur 11.85: Vitamin A, C 20 H 30 O Figur 11.86: Karta över Haninge Isomorfism Alla som får i uppgift att rita en graf utifrån G = ({A,B,C,D,E,F},{(A,B),(B,C),(C,D),(D,E),(E,F),(F,A),(A,D),(B,E),(C,F)}) kommer troligtvis att producera sin egen version. Ibland kan det vara svårt att se att två grafer härstammar från samma definition. Till exempel är grafen i figur 11.89 samma som grafen i 11.90. Vi säger då att graferna är isomorfa, eller att det råder en isomorfi mellan graferna. Så här tar man reda på om isomorfi mellan två grafer gäller. << Combinatorica g2 = {1->2, 1->6, 1->3, 2->4, 2->5, 3->4, 3->5, 4->6, 5->6}; g3 = {1->4, 1->5, 1->6, 2->4, 2->5, 2->6, 3->4, 3->5, 3->6}; g2b = ToCombinatoricaGraph[g2] g3b = ToCombinatoricaGraph[g3] IsomorphicQ[g2b, g3b] False För det första spelar det ingen roll hur man döper noderna. Genom g2 och g3 har vi definierat det två graferna. För att ta reda på om de är isomorfa måste vi först konvertera dem till den typ av grafer som Combinatorica hanterar. I sista raden testar vi så isomorfismen och får reda på att de inte är isomorfa. Detta betyder att, trots att vi testar alla tänkbara numreringar, (6! = 720), av noderna i den andra grafen så kommer ingen numrering att göra att graferna blir identiska. Håkan Strömberg 260 KTH STH