TENTAMEN HF1002, 6H3120, 6H3117 Diskret Matematik Skrivtid 13:15-17:15 Måndag 19 december 2011 Tentamen består av 5 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. På servern finns finns Kursbunten (pdf), Lathund i Mathematica (pdf) samt en fil du kan komma att behöva för att lösa en av uppgifterna. För varje uppgift med korrekt svar får du 1 poäng. 5 poäng av maximalt12 räcker säkert till godkänt. Resultatet 4 poäng berättigar till komplettering. Du redovisar först och främst svaret normalt följt av tankegången, eventuellt tillsammans centrala delar av Mathematica-koden Betygsskala A B C D E 12-11 10 9 8-7 6-5 Håkan Strömberg 1 KTH STH
Uppgift 1 En blåmålad träkub med sidan a 2 cm, sågas upp i små kuber med sidan 1 cm, som figuren visar. Ange formler, uttryckta i a, som bestämmer antalet kuber som a) har 3 målade sidor b) har 2 målade sidor c) har 1 målad sida d) har 0 målade sidor Svar: a) 8 b) 12(a 2) c) 4(a 2) 2 d) (a 2) 3 Håkan Strömberg 2 KTH STH
Uppgift 2 En spindel har 8 ben. En trollslända har 6 ben och 2 par vingar. En cikada har 6 ben och 1 par vingar. Adam har i sin burk totalt 18 insekter, med totalt 118 ben och 20 par vingar. Hur många insekter har han av varje sort? Svar: Antag att han har s spindlar, t trollsländor och c cikador. s+t+c = 18 8s+6t+6c = 118 2t+c = 20 Vi löser systemet med hjälp av Mathematica: Solve[{2t+c==20, s+t+c==18, 8s+6t+6c==118},{c,s,t} och får s = 5,t = 7,c = 6 Håkan Strömberg 3 KTH STH
Uppgift 3 Figur 1: Här ska du lösa det sudokuliknande pusslet, kallat Strimko, i figur 1. I varje rad och varje kolumn ska talen 1...6 finns exakt en gång. Dessutom ska talen 1...6 finnas med i varje, med streck sammanbunden grupp, exakt en gång. Svara med en 6 6 matris utan streck. Svar: Figur 2: Håkan Strömberg 4 KTH STH
Uppgift 4 Bestäm summan till för alla positiva heltal n. Svar: n k=0 ( n k) ( 2n 1 ) k Sum[Binomial[n, k/binomial[2 n - 1, k, {k, 0, n} Svar: 2 Håkan Strömberg 5 KTH STH
Uppgift 5 För 2500 år sedan påstod man i Kina att Sats 1. Om n > 1 delar 2 n n, medför detta att n är ett primtal Motbevisa denna sats genom att bestämma det minsta n för vilket satsen är falsk. Svar: f[ := Block[{n = 1, ok = False}, While[! ok, n++; If[Mod[2^n - 2, n == 0 &&! PrimeQ[n, svar = n; ok = True; svar f[n 341 Håkan Strömberg 6 KTH STH
Figur 3: Uppgift 6 Adam och Bertil är på cykelsemester. De har bestämt sig för att besöka de de 23 platserna på kartan, i figur 3, men ingen av platserna ska besökas fler än än gång, utom plats 1, där de befinner sig just nu och där resan ska starta och sluta. Nu finns det flera möjliga rundturer som uppfyller villkoren och herrarna är därför intresserade av den kortaste. På filen karta.txt finns en graf definierad, som motsvarar kartan. Hur lång är den kortaste rundturen? Svar: g = Graph[{{{1, 2},EdgeWeight->9740},{{1,20},EdgeWeight->31950}, {{1, 12},EdgeWeight->14280},{{1, 13},EdgeWeight->17790}, {{1, 7},EdgeWeight->11220},{{2, 7},EdgeWeight->6680}, {{2, 3}, EdgeWeight->7240},{{2, 9},EdgeWeight->9310}, {{2, 5}, EdgeWeight->19530},{{3, 13}, EdgeWeight->8180}, {{3, 14}, EdgeWeight -> 11610}, {{3, 8},EdgeWeight->5250}, {{4, 5},EdgeWeight ->7450},{{4, 16},EdgeWeight->11260}, {{4, 10},EdgeWeight->6880},{{4, 8},EdgeWeight->8860}, {{5, 9},EdgeWeight->12560},{{5, 11},EdgeWeight->8590}, {{5, 16},EdgeWeight->13860},{{6, 12},EdgeWeight->4420}, {{7, 13},EdgeWeight->7590},{{8, 9},EdgeWeight->5380}, {{8, 15},EdgeWeight->9020},{{8, 14},EdgeWeight->8480}, {{10, 15},EdgeWeight->6350},{{10, 23},EdgeWeight->19150}, {{10, 19},EdgeWeight->5050},{{11, 16},EdgeWeight->6520}, {{6, 20},EdgeWeight->20230},{{16, 23},EdgeWeight->16840}, {{16, 19},EdgeWeight->4680},{{13, 17},EdgeWeight->9430}, {{14, 15},EdgeWeight->7220},{{14, 18},EdgeWeight->5680}, {{14, 17},EdgeWeight->7080},{{15, 23},EdgeWeight->15350}, {{15, 22},EdgeWeight->9250},{{20, 21},EdgeWeight->10640}, {{20, 23},EdgeWeight->30260},{{17, 21},EdgeWeight->5100}, {{21, 22},EdgeWeight->11090},{{22, 23},EdgeWeight->9380}, {{18, 22},EdgeWeight->7870},{{6, 17},EdgeWeight->14440}}, {{{-1.6464088,1.7718941}}, {{-0.67403316,1.7230142}}, {{-0.3278085, 1.0875764}}, {{0.79926324,1.2097759}}, {{1.2780848, 1.7800407}}, {{-1.4548802,0.598778}}, {{-0.77716386, 1.0631365}}, {{0.055248737,0.7291242}}, {{0.13425136, 1.2613909}}, {{0.732965,0.5254582}}, {{1.7642725, 1.0712831}}, {{-1.0276244,0.484725}}, Håkan Strömberg 7 KTH STH
{{-0.61510134,0.32179224}}, {{-0.23204422, -0.06924653}}, {{0.48987103, -0.061099768}}, {{1.6169429,0.43584526}}, {{-0.6781411, -0.61870503}}, {{-0.13425124,-0.6282973}}, {{1.1749539,0.28105903}}, {{-1.5506446, -1.4215887}}, {{-0.5335628,-1.1079137}}, {{0.56798625, -0.9832134}}, {{1.4698796, -1.2422063}} } c = HamiltonianCycle[g, All Length[c 38 Min[Map[CostOfPath[g, # &, c 196450 Håkan Strömberg 8 KTH STH
Uppgift 7 I en hatt finns 10 kort, numrerade 0 till 9. Man drar 5 kort ur hatten och lägger dem i en rad på bordet. Hur stor är sannolikheten att 495 är en delare till det tal som kortraden bildar? Svar: f[ := Block[{a, i, tal, n = 0, svar = {}}, a = Permutations[Range[0, 9, {5} For[i = 1, i <= Length[a, i++, tal = FromDigits[a[[i If[Mod[tal, 495 == 0, n++; AppendTo[svar, {tal, Total[IntegerDigits[tal} n/length[a 10! = 30240 möjliga kan bildas, även med inledande 0:a. För 72 av dem är 495 en delare. Ger svaret p = 1 420 Håkan Strömberg 9 KTH STH
Uppgift 8 Vilket är det minsta positiva heltal som kan uttryckas som som summan av två heltalskuber på två olika sätt? Det eftersökta talet kallas the taxicab-number efter en dialog mellan matematikerna Hardy och Ramanujan. Talet 39312 kan skrivas som summan av två heltalskuber på två olika sätt, 2 3 +34 3 = 39312 och 15 3 +33 3 = 39312, men det är inte det minsta. Svar: Det eftersökta talet är 1729 f[ := Block[{ok = False, n = 0, antal, talet, a}, While[! ok, n++; antal = 0; For[a = 1, a < n^(1/3), a++, m = (n - a^3)^(1/3); If[IntegerQ[m, antal++; If[antal == 4, ok = True; talet = n; talet Håkan Strömberg 10 KTH STH
Uppgift 9 Figur 4: Visar staden där 2 7 människor startar i S 2 n människor startar i S, se figur 4. Häften av dem väljer att följa pilen V, till vänster, fram till nästa korsning (röd prick). Den andra hälften följer pilen H till höger. I nästa korsning väljer, på samma sätt hälften att gå åt vänster och den andra hälften att gå åt höger och så vidare tills alla människorna har passerat n sträcker (når fram till den n+1:e raden av prickar nedifrån räknat) Ta reda på hur 2 10 personer kommer att fördela sig utefter den översta raden, den 11:e, av röda prickar. Svar: g[n_ := Block[{a = {2^n}, b, i}, For[i = 1, i <= n, i++, b = {}; a = Prepend[a, 0 For[j = 1, j <= i, j++, AppendTo[b, (a[[j + a[[j + 1)/2 AppendTo[b, a[[i + 1/2 a = b; a Svar: {1,10,45,120,210,252,210,120,45,10,1} Håkan Strömberg 11 KTH STH
Uppgift 10 Daniel, som brutit mot lagen och förälskat sig i kungens dotter, har nu dömts till döden. Han kommer att dödas av slottets tigrar. Men eftersom kungen är en ärlig man (?), ger han Daniel en sista chans och placerar honom i ett rum med fyra dörrar. Bakom två av dörrarna finns det tigrar, bakom en finns det en drake och bakom den fjärde finns prinsessan. Om Daniel lyckas lista ut bakom vilken dörr prinsessan finns, kommer kungen att ändra sig och istället utlysa bröllop mellan Daniel och prinsessan. På varje dörr finns finns skrivet ett påstående. Kungen berättar för Daniel att: påståendet som står på dörren, som leder till prinsessan är sant. påståendena på dörrarna som leder till tigrarna är falskt. om påståendet som leder till draken säger jag ingenting. Här är påståendena som finns skrivna på dörr nummer: 1 Det finns tigrar bakom dörr 3 och 4. 2 Det finns ingen tiger bakom vare sig dörr 3 eller 4. 3 Det finns en tiger bakom dörr 4, men inte bakom dörr 3 4 Det finns antingen en tiger bakom dörr 3 eller dörr 4, eller möjligtvis båda. Hjälp Daniel att få prinsessan! Svar: Det finns 12 kombinationer av objekt bakom dörrarna, D1...D4. Vi ger var och en en rad i tabellen. De fyra påståendena P1... P2 kontrolleras, sant (s) eller falskt (f). I T1 sorterar vi bort de rader där påståendena är sanna och med en tiger bakom dörren. Återstår fyra kombinationer. I två av dessa står prinsessan bakom ett sant påstående. I båda fallen finns hon bakom dörr 4. D1 D2 D3 D4 L1 L2 L3 L4 T1 T2 T T P D f s f f nej T T D P f s f f nej T P T D f f f s nej T D T P f f f s ja T P D T f f s s nej T D P T f f s s nej P T T D f f f s nej P T D T f f s s nej P D T T s f f s nej D T T P f f f s ja D T P T f f s s nej D P T T s f f s nej Leder till att prinsessan finns bakom den fjärde dörren. Håkan Strömberg 12 KTH STH
Uppgift 11 Adam har 3 enkronor som han singlar samtidigt. Ett lyckat försök för Adam är att alla tre kronorna hamnar med samma sida upp. Hur stor är sannolikheten att han efter 15 försök får exakt 4 lyckade? Svar: Mynten kan hamna på 8 olika sätt. 2 av dem är lyckade. Sannolikheten för ett lyckat kast är p l = 1 4. Sannolikheten för ett misslyckat kast är då p m = 3 4. Med hjälp av binomialfördelningen kan vi nu bestämma eftersökt sannolikhet Binomial[15, 4* (1/4)^4 *(3/4)^11 241805655 1073741824 0.225 Håkan Strömberg 13 KTH STH
Figur 5: Uppgift 12 Givet 8 blå och 11 gula kulor. På hur många sätt kan dessa läggas i en ring så att inte två blå kulor ligger intill varandra? Figur 5 visar ett sätt. Observera att 1 blå och 4 gula kulor endast kan läggas ut på 1 sätt och att 2 blå och 6 gula kan läggas ut på 3 sätt och att ringen alltså kan roteras utan att ett nytt arrangemang uppstår (dock ej vändas eller speglas) Svar: 15 olika arrangemang. f[g_, b_ := Block[{table, i, j, ok, antal = 0, kulor2 = {}}, table = Permutations[Join[Table["g", {g}, Table["b", {b} For[i = 1, i <= Length[table, i++, For[j = 1, j < g + b, j++, ok = True; If[table[[i, j == "b" && table[[i, j + 1 == "b", ok = False; Break[ If[table[[i, 1 == "b" && table[[i, g + b == "b", ok = False; If[ok, antal++; AppendTo[kulor2, table[[i table = {}; AppendTo[table, kulor2[[1 For[i = 2, i <= Length[kulor2, i++, s = kulor2[[i ok = True; For[j = 1, j <= Length[s, j++, s = RotateRight[s If[MemberQ[table, s, ok = False; Break[ If[ok, AppendTo[table, kulor2[[i Håkan Strömberg 14 KTH STH
Length[table Håkan Strömberg 15 KTH STH