Lösningar till Omtentamen i Datavetenskapens grunder för D1, Sim & spel, TDV A Tid och plats: Lördagen 2005-12-17 kl 14:00-19:00 i sal L001 Examinator: Lars Karlsson Hjälpmedel: penna Jourhavande lärare: Lars Karlsson, Tel: 30 33 55 Totalt antal poäng: 48 Dataingenjörer: för betyg 3 krävs 24 poäng, för 4 krävs 32 poäng, och för 5 krävs 40 poäng. Övriga: för betyg G krävs 24 poäng, för VG krävs 36 poäng. 1
Uppgift 1 (6 poäng) Låt A = {pippi,annika,tommy}, B = {emil,ida,alfred,lina}, C = {pippi,annika,ida,lina}, D = {emil,alfred,tommy}, och U = A B C D. Beräkna följande uttryck. a. A C = {pippi,annika}. b. D C = {pippi,annika,ida,lina}. c. A B C = {pippi,annika,tommy}. d. A \ (A C) = {tommy}. e. P(A) = {{}, {pippi}, {annika}, {tommy}, {pippi,annika}, {pippi, tommy}, {annika, tommy}, {pippi, annika, tommy}}. Potenstmängd! f. C D = {(pippi,emil), (pippi,alfred), (pippi,tommy), (annika,emil), (annika, alf red), (annika, tommy), (ida, emil), (ida, alf red), (ida, tommy), (lina, emil), (lina, alf red), (lina, tommy)}. Produktmängd! Obs! Det ska vara parenteser runt paren, inte mängdklamrar! Uppgift 2 (4 poäng) Gäller det för alla tänkbara mängder A, B att A B = B A? Nej, det gäller inte. Ta t ex C D i uppgift 1. Om vi vänder på det får vi D C = {(emil,pippi), (alfred,pippi), (tommy,pippi), (emil,annika),...} vilket är olikt. I ett par som (emil, pippi) spelar ordningen roll. Det är inte samma sak som (pippi,emil)! Uppgift 3 (4 poäng) Vilka av följande påståenden är sanna för godtyckliga mängder A, B och C? Svara sant eller falskt, och motivera dina svar. a. A (B C) = C (B A). Sant. Associativa och kommutativa lagarna. b. A C B C = (A B) C. Falskt. Påminner om De Morgan, men där vänder man på mängdoperationen. 2
c. A C (B C) = (A C B) (A C C). Sant. Distributiva lagen. d. A = A U. Falskt. A = och A U = U. 3
Uppgift 4 (4 poäng) Talbaser. a. Översätt 122 i talbas 10 till talbas 2. Gr heltalsdivision av talet med 2 och behåll resten upprepa sedan med kvoten som nytt tal: 122 = 2 61 + 0, 61 = 2 30 + 1, 30 = 2 15 + 0, 15 = 2 7 + 1, 7 = 2 3 + 1, 3 = 2 2 + 1, 1 = 0 2 + 1. Resterna vi har fått, baklänges, ger svaret: 1111010. b. Översätt 10010 i talbas 2 till talbas 10. 10010 2 = 1 2 4 + 0 2 3 + 0 2 2 + 1 2 1 + 0 2 0 = 18. c. Översätt 122 i talbas 10 till talbas 8. 122 = 8 15 + 2, 15 = 8 1 + 7, 1 = 8 0 + 1, vilket ger 172. d. Översätt 122 i talbas 8 till talbas 10. 122 8 = 1 8 2 + 2 8 1 + 2 8 0 = 82. 4
Uppgift 5 (4 poäng) Betrakta följande automat, där { }c står för komplement. adjo, adjo adjo, adjo {adjo}c, inget S0 hej, vad_onskas? S1 kaffe, hamta_kaffe S2 notan?, ta_betalt S3 {hej}c, inget te, hamta_te {kaffe, te, adjo}c, inget adjo, stopp! kaffe, hamta_kaffe te, hamta_te hej, vad_onskas? a. Vad kallas denna typ av automat? Mealy-automat. b. Vilka är automatens indata-alfabet och utdata-alfabet? I = {hej, kaffe, te, notan?, adjo}. U = {vad onskas?, hamta kaffe, hamta te, ta betalt, stopp, adjo}, och om man vill kan man räkna med inget också. c. Vilken utdatasekvens får man vid följande indatasekvens: hej, kaffe, adjo, adjo? vad onskas?, hamta kaffe, stopp, stopp. d. Vilka tillstånd besöks i (c)? S0,S1,S2,S2,S2. 5
Uppgift 6 (4 poäng) Betrakta följande graf (det är en graf). 2 1 6 7 4 5 8 3 9 a. Ange en krets som inte är en cykel i grafen. 8-7-6-8-5-9-8 (besöker ej samma båge två gånger (krets) men passerar nod 8 två gånger (ej cykel). b. Avgör om grafen är komplett. Vad betyder komplett? Nej, i en komplett graf där finns det bågar mellan alla par noder. c. Avgör om grafen är sammanhängande. Vad betyder sammanhängande? Nej, i en sammanhängande graf finns det en väg mellan varje par av noder. Men det finns t ex ingen väg mellan 1 och 8 här. d. Rita upp en delgraf till grafen. En delgraf består av en delmängd av noderna och bågarna i den ursprungliga grafen. T ex ta bort bågen mellan 1 och 2. 6
Uppgift 7 (4 poäng) Visa att den satslogiska formeln (P Q) P Q är en kontradiktion. Vi sätter upp en sanningstabell: P Q (P Q) P Q (P Q) P Q 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 0 Vi får bara 0:or i kolumnen med formeln. Alltså är formeln alltid falsk, dvs en kontradiktion. Uppgift 8 (6 poäng) Översätt följande predikatlogiska påståenden så tydligt som möjligt till svenska. a. x(tjuv(x) lämnade-fingeravtryck(x) fängslad(x)). Alla tjuvar som lämnade fingeravtryck är fängslade. b. y(tjuv(y) fängslad(y) listig(y)). Det finns någon som är tjuv och fängslad och inte listig. c. x(tjuv(x) fängslad(x) ( z(polis(z) fångade(z, x)) z(domare(z) dömde(z,x)))). För alla fängslade tjuvar finns det någon polis som fångade denne, och en domare som dömde denne. Beskriv också en värld (tolkning) med 3 individer (objekt) där samtliga tre påståenden är sanna. Ange vilka individerna är och vilka enkla satser som är sanna. Ett exempel: Individer = {Joe, Tom, Bob}. Satser = {tjuv(tom), lämnade-fingeravtryck(tom), fängslad(tom), polis(joe), listig(joe), fångade(joe,tom), domare(bob), dömde(bob,tom)}. En kortare version är också möjlig: Satser = {tjuv(tom), fängslad(tom), polis(joe), fångade(joe,tom), domare(bob), dömde(bob,tom)}. 7
Uppgift 9 (6 poäng) Betrakta följande rekursiva Lisp-funktion: (defun foo (x) (if (<= x 1) 0 (+ (* x (- x 1)) (foo (- x 1))))) Beskriv vad funktionen gör. Det allra bästa är om du kan skriva om funktionen som en summa. Visa också vad som händer om man anroparfoo med argumentet 5. Funktionen beräknar, för argumentet n, summan n (n 1) + (n 1) (n 2) +... + 2 1 + 0. I varje steg beräknas x (x 1) och adderas till foo(x 1). Om vi anropar (foo 5) så får vi: (foo 5) => (+ (* 5 4) (foo 4)) => 40 (foo 4) => (+ (* 4 3) (foo 3)) => 20-^ (foo 3) => (+ (* 3 2) (foo 2)) => 8-^ (foo 2) => (+ (* 2 1) (foo 1)) => 2-^ (foo 1) => 0 ----------------------^ Resultatet blir alltså 40! 8
Uppgift 10 (6 poäng) Betrakta följande relation. a b c d Ändra relationen genom att lägga till/ta bort bågar, men gör så få ändringar som möjligt, så att den blir: a. Reflexiv: lägg till ara, brb, crc, drd, ere. b. Symmetrisk: om det finns xry, så ska det också finnas yrx. Alltså, lägg till: cra, erc, drb, erd. c. Anti-symmetrisk: om det finns xry får det inte finnas yrx. Alltså: ta bart arb eller bra. d. Transitiv: om det finns xry och yrz så måste det också finnas xrz. Alltså: lägg till ara, brb, ard, are, brc, bre. e. En partial-ordning: reflexiv, antisymmetrisk, transitiv. Alltså: ta bort bra (eller arb), lägg till bågarna i deluppgift (a), samt ard, are, bre. f. En funktion: varje element ska vara relaterat till exakt ett annat element (en funktion är ett specialfall av en relation!). Alltså: ta bort arb eller arc, och bra eller brd, och lägg till erx för något x. Obs! Gör en sak åt gången: relationen behöver inte vara allt samtidigt. e 9