TENTAMEN HF1002, 6H3120, 6H3117 Diskret Matematik Skrivtid 13:15-18:00 Fredag 28 maj 2010 Tentamen består av 4 sidor Hjälpmedel Den kurslitteratur som använts under kursen, samt egna anteckningar, programlistningar och böcker. Dock inga egna disketter eller CD-ROM. Tentamen består av 12 uppgifter. I katalogen W:\PROV\DM finns Kursbunten (pdf), Lathund i Maple (pdf) samt någon/några filer du kan komma att behöva för att lösa någon/några av uppgifterna. För varje uppgift med korrekt svar får du 1 poäng. 5 poäng av maximalt 12 räcker säkert till godkänt. Resultatet 4 poäng berättigar till komplettering. Du redovisar normalt bara svaret, ett tal eller en lista med tal. Det betyder att ett litet slarvfel leder till 0 poäng. För någon uppgift kan krävas något längre text som svar. I så fall anges detta. Betygsskala A B C D E 12-11 10 9 8-7 6-5 Håkan Strömberg 1 KTH STH
Uppgift 1 Abundant numbers ( rika tal ) är heltal där σ(n) > 2n. σ(n) är summan av alla delare till n. σ(12) = 1+2+3+4+6+12 = 28 > 24. Alltså är 12 ett abundant number. Vilket är det minsta udda abundant number? Lösning: Svaret är 945 Uppgift 2 f[ := Block[{t = 0, ok = False}, While[! ok, t++; If[2*t < Total[Divisors[t && Mod[t, 2 == 1, ok = True; t f[ För en familj gäller följande: Åldern i år för Fadern, Modern, Sonen och Dottern är alla heltalskvadrater. Faderns ålder är lika med summan av Moderns, Sonens och Dotterns ålder. Farfars ålder är summan av Faderns, Moderns och Dotterns ålder. Farfars ålder är ett primtal Bestäm de fem personernas ålder. Svar: Fadern är 49 år, modern är 36, dottern 4, sonen 9 och farfar 89 For[k=1,k<=10,k++, For[s=1,s<k,s++, For[d=1,d<k,d++, ma=k^2+s^2+d^2; f=ma+k^2+d^2; If[PrimeQ[f && f<100 && IntegerQ[Sqrt[ma, Print[f," ",ma," ",k^2," ",s^2," ",d^2," " 89 49 36 9 4 Håkan Strömberg 2 KTH STH
Uppgift 3 De minsta konsekutiva haltalskuberna vars differens är en heltalskvadrat är 8 3 7 3 = 169 = 13 2. Vilket är nästa par av heltalskuber med denna egenskap? Lösning: 105 3 104 3 = 32761 = 191 2 Uppgift 4 h[ := Block[{t = 7, lista = {}, ok = False}, While[! ok, t++; If[IntegerQ[Sqrt[(t + 1)^3 - t^3, AppendTo[lista, {t + 1, t} ok = True; lista h[ 7 tvåsiffriga tal kan konkateneras (sammanfogas) till ett 14 siffror långt heltal, som dessutom är en heltalskvadrat. Vilket är det eftersökta talet då listan av tvåsiffriga tal är{74,89,23,67,10,46,24} Svar: 3234567 2 = 10462423677489 Clear[" *" f[lista_ := Block[{ m, t, s, svar = {}, tal}, m = Permutations[lista For[t = 1, t < Length[m, t++, tal = 0; For[s = 1, s <= Length[m[[t, s++, tal = 100*tal + m[[t, s If[IntegerQ[Sqrt[tal, AppendTo[svar, tal svar f[{74, 89, 23, 67, 10, 46, 24} Håkan Strömberg 3 KTH STH
Uppgift 5 Vi vill skriva talen 1..9 runt en cirkel, så att summan av två intilliggande tal aldrig delas jämnt av talen 3,5 eller 7. Presentera en lista som anger i vilken ordning talen ska placeras. Det räcker att ange en av flera lösningar. Lösning: Följande lösningar finns {{1,3,8,5,6,2,9,4,7},{1,7,4,9,2,6,5,8,3},{2,6,5,8,3,1,7,4,9}, {2,9,4,7,1,3,8,5,6},{3,1,7,4,9,2,6,5,8},{3,8,5,6,2,9,4,7,1}, {4,7,1,3,8,5,6,2,9},{4,9,2,6,5,8,3,1,7},{5,6,2,9,4,7,1,3,8}, {5,8,3,1,7,4,9,2,6},{6,2,9,4,7,1,3,8,5},{6,5,8,3,1,7,4,9,2}, {7,1,3,8,5,6,2,9,4},{7,4,9,2,6,5,8,3,1},{8,3,1,7,4,9,2,6,5}, {8,5,6,2,9,4,7,1,3},{9,2,6,5,8,3,1,7,4},{9,4,7,1,3,8,5,6,2}} f[n_ := Block[{l, r = {}, m, ok, t}, l = Permutations[Range[n For[m = 1, m <= Length[l, m++, ok = True; p = l[[m For[t = 1, t <= n - 1, t++, If [Mod[p[[t + p[[t + 1, 3 == 0 Mod[p[[t + p[[t + 1, 5 == 0 Mod[p[[t + p[[t + 1, 7 == 0, ok = False; If [Mod[p[[1 + p[[n, 3 == 0 Mod[p[[1 + p[[n, 5 == 0 Mod[p[[1 + p[[n, 7 == 0, ok = False If[ ok, AppendTo[r, p r f[9 Håkan Strömberg 4 KTH STH
Uppgift 6 Adam och Bertil har en gemensam spargris, som från början innehöll 210 kr. Varje dag tog Adam ett och samma belopp från spargrisen. Bertil fiskade upp ett annat belopp varje dag. Efter 6 veckor var grisen tom. Beräkna vilket belopp det var Adam och Bertil tog varje dag. Man vet att Adam ensam skulle ha tömt grisen 5 veckor tidigare än om Bertil, om de ensamma hade tagit sitt belopp från grisen varje dag. Lösning: Antag att Adam tog m x kr varje dag och att Bertil tog x kr. Vi får ekvationssystemet 210 x 210 = 35 mx 210 x+mx = 42 med lösningen m = 3 2 och x = 2, vilket betyder att Adam tog 3 kronor och Bertil 2 kr. Systemet har en lösning till m = 3 2 och x = 15, men den skulle ju innebära att Adam istället stoppade i pengar varje dag. Håkan Strömberg 5 KTH STH
Uppgift 7 Genom Förbifart Stockholm har anlagts en väg, som en cirkel runt staden, se figur, för att på det sättet avlasta trafiken i innerstaden (1). Mellan två intilliggande trafikplatser (2... 10) och mellan vissa trafikplatser och innerstaden finns beräknad körtid angiven. Trots det tjänar man ibland att ta vägen genom staden. Ta reda på för vilka par av trafikplatser (angivna som [tp 1,tp 2 ) man vinner tid, om man åker genom innerstaden. Grafen finns att på filen cirkelvagen.txt. Lösning: Vi får genom funktionen reda på att mellan (2,6),(4,8) och (4,9) bör färden gå genom innerstaden. f[:=block[{i, j, e, v, g, p, t, l = {}}, e={{1, 2}, {1, 4}, {1, 6}, {1, 8}, {1, 9}, {2, 3}, {2, 10}, {3, 4}, {4, 5}, {5, 6}, {6, 7}, {7, 8}, {8, 9}, {9, 10}}; v = {180, 165, 146, 116, 174, 110, 64, 106, 138, 88, 78, 110, 97, 72}; g = FromOrderedPairs[e, Type -> Undirected g = SetEdgeWeights[g, v t = AllPairsShortestPath[g For[i = 2, i <= 8, i++, For[j = i + 1, j <= 9, j++, p = ShortestPath[g, i, j If[Position[p, 1!= {}, AppendTo[l, {i, j, t[[i, j} l f[ Håkan Strömberg 6 KTH STH
Uppgift 8 Hitta alla naturliga tal n för vilka exakt två av följande tre uttalanden är sanna. 1) Talet n + 71 är en heltalskvadrat 2) Den sista siffran i n är 2. 3) Talet n 45 är en heltalskvadrat Dessa tal är väldigt få! Lösning: Det finns bara ett tal 829. f[m_ := Block[{i, L = {}, n}, For[ i = 1, i <= m, i++, n = 0; If[IntegerQ[Sqrt[i + 71, n++; If[Mod[ i, 10 == 2, n++; If[IntegerQ[Sqrt[i - 45, n++; If [n == 2, AppendTo[L, i L f[10000 Här en matematiskt bevis: Först så märker vi att varken 1) och 2), eller 2) och 3) kan vara sant samtidigt, eftersom sista siffran av en kvadrat bara kan vara 0,1,4,9,6 eller 5. Detta betyder att tal med sista siffran 2+1 = 3 eller 12 5 = 7 inte kan vara kvadrat av ett heltal. Detta betyder att vi letar efter ett tal n för vilket både n + 71 och n 45 är heltalskvadrater av heltal. Låt oss beteckna n+71 = x 2 och n 45 = y 2 och för enkelhetens skull, antar vi att både x och y är positiva. Vi har alltså x 2 y 2 = 116; där x och y är heltal. Vi skriver om ekvationen på formen (konjugatregeln) (x y)(x+y) = 116 Alla möjliga faktoriseringar av 116 i positiva heltal sådana att den första faktorn är mindre än den andra (ty hos oss x y < x + y både x och y är positiva och x = n+71 > n 45 = y) är 116 = 1 116 = 2 58 = 4 29 Håkan Strömberg 7 KTH STH
Vi kan direkt eliminera faktoriseringarna 1 116 och 4 29, ty i båda fallen har faktorerna olika pariteter (och x y och x + y har alltid samma paritet). Det återstår alltså att lösa ekvationssyetemet { x y = 2 x+y = 58 Lösningen är x = 30 och y = 28, vilket ger x 2 = 900 och y 2 = 784 och n = 829 är talet vi letade efter. Det finns alltså bara ett tal som uppfyller uppgiftens villkor och detta är 829. Uppgift 9 Figur 1: Grafen i figur 1 är inte planar. Det vill säga den kan inte ritas utan att två bågar skär varandra. Men genom att plocka bort en båge blir grafen planar. Vilka bågar kan komma ifråga? Lösning: Tar man bort någon av bågarna (2,11), (5,9) eller (6,10) blir grafen planar f[ := Block[{ lista = {}, e, e2, g, i}, e = {{1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 10}, {2, 11}, {3, 4}, {3, 5}, {3, 10}, {4, 5}, {4, 6}, {5, 6}, {5, 9}, {5, 10}, {6, 7}, {6,10}, {7, 8}, {7, 9}, {8, 9}, {8, 11}, {9, 10}, {9, 11}, {10, 11}}; For[i = 1, i <= Length[e, i++, e2 = e; e2 = Drop[e, {i} g = FromOrderedPairs[e2, Type -> Undirected If[PlanarQ[g, AppendTo[lista, e[[i lista f[ Håkan Strömberg 8 KTH STH
Uppgift 10 I en låda ligger 111 stycken kulor i färgerna rött, blått, grönt och vitt. Man vet att om 100 kulor dras ur lådan på måfå, så kommer garanterat alla fyra färgerna att finnas med. Bestäm det minsta antalet kulor som man måste dra för att garanterat minst tre av färgerna ska förekomma. Lösning: Antag att antalet kulor av de olika färgerna ärr,b,g ochv, med r+b+g+v= 111. Man kan till exempel anta att r b g v. Det räcker med 100 kulor för att få fyra olika färger, det vill säga det är omöjligt att dra ut 100 stycken kulor där bara tre färger förekommer, inte ens av de färger det finns flest av. Det vill säga summan av b,g och v är mindre än 100, alltså b+g+v+1 100. Således r 12 och därför också b 12. Vi vill bestämma g+v+1. Men g+v+1 = 112 r b 112 24 = 88. Det kan inte vara mindre än 88, eftersom detta antal exempelvis krävs för fallet då r = 12,b = 12,g = 12,v = 75. Alltså är svaret 88. Uppgift 11 Vi startar med en kortlek innehållande n kort. Första kortet läggs underst, andra kortet kastas, tredje kortet läggs underst, fjärde kastas och så vidare till endast ett kort återstår. Skriv en funktion som, för givet n, tar reda på vilken plats (från toppen räknat) detta kort hade från början i kortbunten. Det är möjligt att bestämma en funktion som direkt ger svaret: f(n) = a n 2 log 2 (b n) +c +d Bestäm med hjälp av den skrivna funktionen värden för n = 1...30. Använd dessa data för att bestämma a,b,c,d i den andra funktionen. Lösning: f[n_ := Block[{ S}, S = Range[n While[Length[S > 1, S = Flatten[{Drop[S, 2, S[[1} S[[1 t = Table[f[i, {i, 1, 30} FindFit[t,{a*n-2^(Floor[Log[2,b*n+c)+d},{a,b,c,d},n Vi får resultatet f(n) = 2n 2 log 2 n +1 +1 Med den här funktionen kan vi direkt bestämma det sista kortets placering från början i en kortlek med n kort g[n_ := 2*n - 2^(Floor[Log[2, n + 1) + 1 Håkan Strömberg 9 KTH STH
Uppgift 12 På en fest med 28 studenter, serverades tre sorters pizza: Vesuvio (V), Calzone (C) och Hawaii (H). Varje student åt åtminstone en sorts pizza Ingen av de 7 olika valen av en eller flera pizzor åts av samma antal studenter Varje val av endast en pizza gjordes av ett udda antal studenter Varje val av två olika pizzor gjordes av ett jämnt antal Om totalt 10 studenter åt Hawaii, hur många åt då de två pizzorna Vesuvio och Calzone? Lösning: När vi upptäcker att 1+2+3+4+5+6+7+8 = 28 är mer än halva problemet löst. f[ := Block[{ L, S = {}, m, i}, L = Permutations[{1, 2, 3, 4, 5, 6, 7} For[i = 1, i <= Length[L, i++, m = L[[i If[ m[[1 + m[[4 + m[[5 + m[[7 == 10 && Mod[m[[1, 2 == 1 && Mod[m[[2, 2 == 1 && Mod[m[[3, 2 == 1 && Mod[ m[[4, 2 == 0 && Mod[ m[[5, 2 == 0 && Mod[ m[[6, 2 == 0, AppendTo[S, {m[[6, m} S f[ Det finns 8 lösningar alla med svaret 6 för valet Vesuvio och Calzone. Uppgiften i Roséns Handbook of Discrete Mathematics anger att antalet Hawaii-ätare är 18 med svaret 2, men tyvärr finns även svaren 4, 6 vilket diskvalificerar uppgiften. Däremot fungerar uppgiften om 18 byts mot 10 (svar 6) eller 22 (svar 2). Håkan Strömberg 10 KTH STH