Lösningar: Tentamen i Datavetenskapens grunder för D1, SDU, TDV A

Relevanta dokument
Lösningar till Omtentamen i Datavetenskapens grunder för D1, Sim & spel, TDV A

Tentamen Datastrukturer D DAT 035/INN960

Grundläggande logik och modellteori (5DV102)

Tentamen i Introduktion till programmering

, S(6, 2). = = = =

729G04 Programmering och diskret matematik

1. (3p) Bestäm den minsta positiva resten vid division av talet med talet 31.

Grundläggande logik och modellteori

Algebra och Diskret Matematik A (svenska)

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

729G04 Programmering och diskret matematik TEN kl 8-12

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2

Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Efternamn förnamn pnr kodnr

Algoritmer, datastrukturer och komplexitet

Grundläggande datalogi - Övning 1

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Språket Python - Del 1 Grundkurs i programmering med Python

Dataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

729G04 Programmering och diskret matematik

Föreläsning 2 Programmeringsteknik och C DD1316

Lösning till tentamensskrivning i Diskret Matematik, SF1610 och 5B1118, torsdagen den 21 oktober 2010, kl

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

Efternamn förnamn pnr årskurs

Tentamen Datastrukturer D DAT 036/INN960

Algoritmer, datastrukturer och komplexitet

729G04 Programmering och diskret matematik TEN kl 8-12

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610 och 5B1118, tisdagen den 7 januari 2014, kl

Efternamn förnamn ååmmdd kodnr

Hjalpmedel: Inga hjalpmedel ar tillatna pa tentamensskrivningen. 1. (3p) Los ekvationen 13x + 18 = 13 i ringen Z 64.

Tentamen Datastrukturer (DAT037)

DD1320 Tillämpad datalogi. Lösning (skiss) till tenta 20 okt 2011

Inom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två

Datalogi, grundkurs 1

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

7, Diskreta strukturer

DEL I. Matematiska Institutionen KTH

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner

Tentamen Datastrukturer D DAT 036/INN960

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

DEL I. Matematiska Institutionen KTH

Problemlösning och algoritmer

Dataabstraktion. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

Grundläggande logik och modellteori (5DV102)

Tentamen i TDDC75 Diskreta strukturer

Diskret Matematik A för CVI 4p (svenska)

Sätt att skriva ut binärträd

729G04 - Diskret matematik. Lektion 3. Valda lösningsförslag

Pythons standardbibliotek

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Programmering II (ID1019) :00-11:00

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Kap. 7 Logik och boolesk algebra

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

729G04 Programmering och diskret matematik

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Tentamen i kurserna Beräkningsmodeller (TDA181/INN110) och Grundläggande Datalogi (TDA180)

Mängder. 1 Mängder. Grunder i matematik och logik (2015) 1.1 Grundläggande begrepp. 1.2 Beskrivningar av mängder. Marco Kuhlmann

DAT043 Objektorienterad Programmering

Tentamen TEN1 HI

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Uppgifter teknik HT17 (uppdaterad v. 40)

Lösningsförslag till tentamensskrivning i SF1610 Diskret Matematik för CINTE 30 maj 2018, kl

Tentamen Datastrukturer för D2 DAT 035

Vad är det? Översikt. Innehåll. Vi behöver modeller!!! Kontinuerlig/diskret. Varför modeller??? Exempel. Statiska system

Grundläggande Datalogi

Tentamen TEN1 HI

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Grundläggande logik och modellteori

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, m fl, SF1610, tisdagen den 2 juni 2015, kl

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Laboration: Whitebox- och blackboxtesting

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Föreläsning 6: Introduktion av listor

Föreläsning 8 Datastrukturer (DAT037)

Dugga Datastrukturer (DAT036)

Algoritmer, datastrukturer och komplexitet

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

Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,

Tenta i Grundläggande programmering DD klockan

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö

Programmering II (ID1019) :00-11:00

Tentamen Datastrukturer (DAT036)

Transkript:

Lösningar: Tentamen i Datavetenskapens grunder för D1, SDU, TDV A Tid och plats: måndagen 2006-11-06 kl 08:00-13:00 i sal L001 Examinator: Lars Karlsson, tel: 30 33 55 Hjälpmedel: penna, suddgummi. 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. Tänk på att motivera alla dina svar. 1

Uppgift 1 (6 poäng) Låt M = {g,h} och N = {h,i,j, {g,h}}. Svara Ja eller Nej på följande frågor, och motivera dina svar: a. g M? Svar: Ja, g är ett element i M. b. g N? Svar: Nej, g är inte ett element i N. c. {g,h} M? Svar: Nej, {g,h} är inte ett element i M. d. {g,h} N? Svar: Ja, {g,h} är ett element i N. e. M N? Svar: Nej, t ex har vi g M men inte g N. Alltså ej delmängd. f. N P(M)? Svar: Nej, t ex har vi h N men inte h P(M), eftersom den senare bara innehåller mängder (det är en potensmängd). Uppgift 2 (4 poäng) Visa följande mängdteoretiska likheter för godtyckliga mängder A, B genom att använda räknereglerna (du behöver dock inte namnge varje regel du använder): a. A (B A c ) = A B Svar: A (B A c ) = Distr (A B) (A A c ) = (A B) U = (A B). b. A (B A c ) = Svar: A (B A c ) = A (A c B) = (A A c ) B = B =. c. (A B) B = B Svar: (A B) B = B (B A) = Absorption B. d. (A c B c ) c = (A B) Svar: (A c B c ) c = demorgan (A c ) c (B c ) c = dubbel neg (A B) 2

Uppgift 3 (4 poäng) Primtalsfaktorisera talet 50 på alla sätt det går. Motivera också att du verkligen har fått med alla sätt. Svar: 50 = 2 5 5. Varje tal kan endast primtalsfaktoriseras på ett sätt. Uppgift 4 (4 poäng) Greve von Slumpf hade tre söner: Maximillan, Medimillian och Minimillian. Han hade också fyra slott: Solberg, Måndal, Äppelsjö och Pärontjärn. Greven beslutade att låta sina söner få ut det mesta av deras arv innan han själv avled genom att ge dem varsitt slott; ett slott behöll han själv så länge. Slotten delades ut genom lottdragning. a. På hur många sätt kan slotten fördelas till sönerna och greven? Svar: 4 3 2 1 = 24, eller 4! (permutationer) b. Vad är sannolikheten att greven får bo kvar på sitt favoritslott, Pärontjärn? Svar: 0.25. c. Vad är sannolikheten att Maximillian inte får slottet med de bästa jaktmarkerna, Solberg? Svar: 1-0.25 = 0.75 (komplementhändelsen till att få slottet). d. Greven hade också fyra paradvagnar, som fördelades på samma sätt genom lottning. På hur många sätt kan slott och paradvagnar fördelas (kombinerat)? Svar: 4! 4! = 576 (2 st permutationer samt multiplikationsprincipen). 3

Uppgift 5 (4 poäng) En relation kan i Python representeras som ett mängd av tupler, t ex: rel = set([(1,2),(2,3),(3,3)]). Mängden som relationen gäller över kan helt enkelt representeras som en mängd, t ex: mangd = set([1,2,3,4]). Med det i åtanke, vad testar följande funktion? def test(m, r): for e1 in m: for e2 in m: if (e1,e2) in r and (e2,e1) not in r: return False return True Och vad returneras när man anropar test(mangd,rel), med argumenten som ovan? Svar: Funktionen testar om relationen är symmetrisk. Om den hittar något (e1,e2) men ej (e2,e1) returnerar den False. I annat fall returnerar den True. test(mangd,rel) ger False. Uppgift 6 (4 poäng) Rita en graf med 6 noder som samtidigt är bipartit, har en Hamiltoncykel, och saknar en Eulerkrets. Motivera. Svar: noder: 1, 2, 3, 4, 5, 6, bågar: {{1, 2}, {1, 4}, {1, 6}, {3, 2}, {3, 4}, {5, 4}, {5, 6}}. Bipartit: ena sidan är 1, 3, 5 och andra sidan är 2, 4, 6. Hamiltonscykel: 1-2-3-4- 5-6-1. Eulerkrets: 1 och 4 har ojämn grad, så ingen sådan kan finnas. 4

Uppgift 7 (4 poäng) Ge sanningstabellen för den satslogiska formeln (P (R P)) och avgör om den är satisfierbar, en kontradiktion, och/eller en tautologi. Svar: P R (P (R P)) 0 0 0 0 1 0 1 0 1 1 1 0 Satisfierbar (det finns en 1:a i kolumnen). Uppgift 8 (6 poäng) Översätt följande påståenden till predikatlogisk form. Använd predikaten Filosof(x), Lärjunge(x,y), Klok(x), Lycklig(x). a. Sokrates är en filosof, och Platon är Sokrates lärjunge, och Aristoteles är Platons lärjunge. Svar: Filosof(Sokrates) Lärjunge(Platon, Sokrates) Lärjunge(Aristoteles,Platon). b. Alla filosofer är kloka, men inte alla filosofer är lyckliga. Svar: x(filosof(x) Klok(x)) x(filosof(x) Lycklig(x)). c. Alla som är lärjungar till någon filosof är kloka. Svar: x( y(lärjunge(x, y) Filosof(y)) Klok(x)). 5

Uppgift 9 (6 poäng) En trappstegspyramid består av ett block högst upp, 2 2 block därunder, 3 3 block därunder och så vidare. a. Ge en matematisk rekursiv funktion för att beräkna antalet block i en trappstegspyramid{ av höjden n. 1 om n = 1. Svar: block(n) = n n + block(n 1) om n > 1 b. Ge en summaberäkning för samma sak. Svar: block(n) = n i=1 i i. c. Skriv antingen (a) eller (b) som en Python-funktion. Svar (välj en): def block1(n): if n == 1: return 1 else: return n*n+block1(n-1) def block2(n): res = 0 for i in range(1,n+1): # Går från 1 till n res = res + i*i return res 6

Uppgift 10 (6 poäng) En hårtork har tre lägen: AV, LÅG EFFEKT och HÖG EFFEKT. Den har en knapp UPP som för varje tryckning ändrar läget ett steg, från AV till LÅG EFFEKT till HÖG EFFEKT, och den har en knapp NER som går på andra hållet. a. Rita en Mealy-automat som beskriver hårtorken. Som insignalalfabet har du de två knapparna, och som utsignalalfabet har du de tre lägena. Svar: Man behöver tre tillstånd: s 0,s 1 och s 2, samt följande övergångar: Från s 0 till s 0 : en båge med NER. Från s 0 till s 1 : en båge med UPP, LÅG EFFEKT. Från s 1 till s 0 : en båge med NER, AV. Från s 1 till s 2 : en båge med UPP, HÖG EFFEKT. Från s 2 till s 1 : en båge med NER, LÅG EFFEKT. Från s 2 till s 2 : en båge med UPP. b. Skriv en Python-funktion för automaten i (a) som tar ett tillstånd och en insignal som argument och returnerar en utsignal och ett nytt tillstånd. def hartork(tillstand,indata): if tillstand == s0 : if indata == NER : return s0, elif indata == UPP : return s1, LÅG EFFEKT elif tillstand == s1 : if indata == NER : return s0, AV elif indata == UPP : return s2, HÖG EFFEKT if tillstand == s2 : if indata == NER : return s1, LÅG EFFEKT elif indata == UPP : return s2, 7