Grundläggande Datalogi för F

Relevanta dokument
Grundläggande Datalogi för F

Tentamen kl Uppgift 4. Uppgift 5

KTH, NADA, Vahid Mosavat. 1. Flervalsfrågor (5p)

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

Exempeltenta GruDat 2002/2003

Fredag 10 juni 2016 kl 8 12

Tentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.'

Lösningar Datastrukturer TDA

Träd Hierarkiska strukturer

3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L.

Tildatenta Lösningsskiss

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Tentamen i Algoritmer & Datastrukturer i Java

Föreläsning 13 Datastrukturer (DAT037)

DD1320 Tillämpad datalogi. Lösnings-skiss till tentamen

Föreläsning 13 Datastrukturer (DAT037)

Övning 2. (Länkade) Listor, noder

Hashtabeller! (& kanske lite sortering)

Lösningsförslag för tentamen i Datastrukturer (DAT037) från

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

Föreläsning 13 och 14: Binära träd

Övning 4. Hashning, sortering, prioritetskö, bästaförstsökning. Hitta på en perfekt hashfunktion för atomer. Hur stor blir hashtabellen?

Tentamen Datastrukturer för D2 DAT 035

Måndag 13 mars 2017 kl Rita en KMP-automat för CAMCORDERCAMERA samt ange next-vektorn.

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

Föreläsning Datastrukturer (DAT036)

Föreläsning 7: Prioritetskö, trappa heapsort, hashning

Föreläsning Datastrukturer (DAT036)

Datastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Föreläsning Datastrukturer (DAT037)

Tentamen Datastrukturer D DAT 036/INN960

Tentamen, Algoritmer och datastrukturer

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

Föreläsning 9 Datastrukturer (DAT037)

Seminarium 13 Innehåll

Sökning. Översikt. Binärt sökträd. Linjär sökning. Binär sökning. Sorterad array. Linjär sökning. Binär sökning Hashtabeller

Sätt att skriva ut binärträd

Föreläsning 13 Innehåll

Föreläsning 4 Datastrukturer (DAT037)

Övning 7 - Tillämpad datalogi DD1320, TENTAMEN I TILLÄMPAD DATALOGI Tisdagen den 12 januari 2010 kl 14 18

Tentamen Datastrukturer D DAT 035/INN960

Föreläsning 4 Datastrukturer (DAT037)

Tentamen Datastrukturer D DAT 036/INN960

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 5: Grafer Del 1

Tentamen TEN1 HI

Tentamen i Algoritmer & Datastrukturer i Java

Föreläsning Datastrukturer (DAT037)

Föreläsning 5 Innehåll

Föreläsning 9 Innehåll

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Inlämningsuppgiften. Föreläsning 9 Innehåll. Träd. Datastrukturer i kursen

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å

Tentamen (del 2) (4 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Datastrukturer. Föreläsning 5. Maps 1

Grundläggande datalogi - Övning 4

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna

Tentamen Datastrukturer, DAT037 (DAT036)

Tentamen Datastrukturer D DAT 035/INN960

Föreläsning 11 - Automater, textsökning, tillstånd

DD1321, Tentamen i tillämpad programmering och datalogi Lördagen den 18 dexember 2010 kl 13 18

Algoritmer, datastrukturer och komplexitet

Föreläsning Datastrukturer (DAT036)

Föreläsning 5 Innehåll. Val av algoritm och datastruktur. Analys av algoritmer. Tidsåtgång och problemets storlek

Algoritmer, datastrukturer och komplexitet

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Föreläsning 7 Datastrukturer (DAT037)

Datastrukturer. föreläsning 9. Maps 1

Datastrukturer. föreläsning 10. Maps 1

Datastrukturer. föreläsning 9. Maps 1

TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00

DAI2 (TIDAL) + I2 (TKIEK)

Vad har vi pratat om i kursen?

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

Övningsuppgifter #11, Programkonstruktion och datastrukturer

Sortering. Brute-force. Sortering Ordna element enligt relation mellan nyckelvärden

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

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Lösningsförslag DD1320/DD

Dekomposition och dynamisk programmering

Magnus Nielsen, IDA, Linköpings universitet

Tentamen Datastrukturer, DAT037 (DAT036)

Grundläggande Datalogi

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

Sökning och sortering

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Lösningsförslag till exempeltenta 1

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt

Föreläsning 8 Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037)

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Föreläsning 11 Datastrukturer (DAT037)

Programkonstruktion och. Datastrukturer

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

Trädstrukturer och grafer

Transkript:

2D1344 Grundläggande Datalogi för F Tentamen 2004-03-13 kl 9.00 13.00 (inräknat rättningstid) Inga hjälpmedel. Endast ett svarsalternativ på varje fråga är korrekt. Felaktigt svar eller felaktigt antal ikryssade svarsalternativ ger noll poäng på uppgiften. Preliminära betygsgränser: 25p 3 35p 4 45p 5 Uppgift 1 Uppgift 4 Du har en abstrakt stack med n personnamn samt en tom abstrakt kö. Hur många anrop (ungefär) krävs för att bestämma n? Stacken ska vara oförändrad efteråt. (Kolla om stacken är tom kräver inget anrop.) A) 2n B) 4n C) 6n D) 8n Hashtabeller med länkade krocklistor har en viss dålig egenskap. A) Svåra att spara på fil. B) Längre söktid. C) Större klustringsrisk. D) Borttagning tillåts inte. Uppgift 2 Du har en abstrakt kö med n personnamn samt en tom abstrakt stack. Hur många anrop (ungefär) krävs för att bestämma n? Kön ska vara oförändrad efteråt. A) 2n B) 4n C) 6n D) 8n Uppgift 3 Antag att vi vill lagra 666 namn i en hashtabell av längden 100 där kollisionerna hanteras med enkellänkade listor. Hur många jämförelser behövs det i medeltal för att hitta ett givet namn? A) Drygt en. B) Cirka fyra. C) Cirka sju. D) Cirka 333. Uppgift 5 Vad är en lämplig hashfunktion för atombeteckningar som H och Cl? Parametern n, hashtabellens storlek, är primtalet 173. Med ord(tkn) menas bokstavens ordningsnummer i alfabetet. A) sum = ord(tkn1) if tkn2: sum = sum*173 + ord(tkn2) return sum % n B) sum = ord(tkn1) if tkn2: sum = sum + ord(tkn2)*173 return sum % n C) sum = ord(tkn1) if tkn2: sum = sum*32 + ord(tkn2) return sum % n D) sum = ord(tkn1) if tkn2: sum = 31 + ord(tkn2) return sum % n

Uppgift 6 En datalog som lagrar ett medlemsregister i en hashtabell i stället för i ett binärt sökträd har förmodligen följande skäl. A) Lättare att lägga till poster. B) Snabbare sökning. C) Mindre minnesåtgång. D) Enklare att skriva ut i bokstavsordning. Uppgift 7 Sökning i ett binärt sökträd eller i en oordnad vektor, vilket går fortast? A) 0: Island 2: Finland 3: Sverige 4: Danmark 6: Norge B) 0: Island 2: Danmark 3: Finland 4: Sverige 6: Norge C) 2: Finland, Danmark 3: Sverige 6: Norge, Island D) 2: Finland 3: Sverige 4: Danmark 6: Island 7: Norge A) Sökträd. B) Vektor. C) Lika fort om trädet är balanserat. D) Lika fort om trädet är helt obalanserat (en tarm). Uppgift 8 För att hitta dubbletter bland tiotusen värden är följande metod bäst. A) Quicksort. B) Insättningssortering. C) Trappa (heap). D) Hashtabell. Uppgift 9 Antag att vi har en liten hashtabell med plats för sju element. Antag vidare att linjär probning (med steget ett) används för att hantera kollisioner. Vad blir slutresultatet när strängarna Sverige, Finland, Danmark, Norge och Island i denna ordning successivt läggs in i tabellen. Vår hash-funktion, h, ger följande svar: h( Sverige ) 3 h( Finland ) 16 h( Danmark ) 9 h( Norge ) 27 h( Island ) 6 Uppgift 10 Vilken av följande kodningar är en korrekt Huffmankodning för data med dessa förekomstsekvenser: a 36% b 21% c 15% d 13% e 11% f 4% A) a:0 b:1 c:01 d:10 e:101 f:010 B) a:10 b:00 c:11 d:101 e:100 f:01 C) a:00 b:10 c:010 d:011 e:110 f:111 D) a:0 b:1 c:01 d:10 e:10 f:01 Uppgift 11 <pnyxtr> ::= p<ny>x t r <ny> ::= n y<pnyxtr> Vilket ord följer syntaxen för <pnyxtr>? A) pypypnxxx B) ypyrx C) pptxx D) nypnyxtr 2

Uppgift 12 Knuth-Morris-Pratts textsökningsalgoritm är snabb för att den Uppgift 16 Man vill ordna en personvektor så att damerna kommer först. Vad är komplexiteten? A) jämför från mönstrets slut så att man kan hoppa fram långt. B) utnyttjar att strängarna är sorterade. C) jämför ovanliga bokstäver först. D) går igenom textmassan linjärt utan att backa. Uppgift 13 Viggos rättstavningsprogram Stava har ingen ordlista, utan A) en boolesk hashtabell och fjorton hashfunktioner. B) fjorton booleska hashtabeller med samma hashfunktion. C) ett fjortonbitars bloomfilter. D) fjorton bloomfilter. A) O(log N) B) O(N) C) O(N log N) D) O(N 2 ) Uppgift 17 Stockholmsbörsen har en aktieförteckning ordnad efter aktiernas aktuella säljkurs. Det är en vektor med den dyraste aktien först. Efter varje kursändring måste programmet kolla om omsortering behövs. Vilken sorteringsmetod är lämpligast? A) Quicksort B) Bubbelsortering C) Heapsort D) Mergesort Uppgift 14 När man tar ut översta posten ur en trappa uppstår ett tomrum. Vilken post ska man fylla det med? A) Bästa barnet. B) Sista posten. C) Vänstra barnet. D) Bästa posten på sista nivån. Uppgift 18 Vilket ord ligger längst från GUD i labbens mening? Ett program för att ta reda på svaret använder lämpligen A) rekursiv djupetförstsökning. B) breddenförstsökning med kö. C) djupetförstsökning med stack. D) bästaförstsökning med prioritetskö. Uppgift 15 Vilken algoritm är inte exempel på principen divideand-conquer? A) Quicksort. B) Mergesort. C) Räknesortering (distribution count). D) Postordergenomgång av ett binärträd. Uppgift 19 Ett allmänt träd representeras lämpligen med följande struktur. A) Ett binärt träd. B) En länkad struktur med många pekare i varje post. C) En kö av köer. D) En generaliserad trappa. 3

Uppgift 20 I vilken ordning behandlar man noderna vid en inordergenomgång av följande träd? Uppgift 23 Millenniebuggen krävde omprogrammering för miljarder. Vilken datalogisk princip hade försummats? A) DEABCF B) ABCDEF C) AEDCBF D) DEBFCA Uppgift 21 D E A C B F Ett binärt träd med följande egenskap är alltid balanserat. A) Alla noder i vänster delträd är mindre än roten och alla i höger delträd är större. B) Vänster delträd har ungefär lika många noder som höger delträd. C) Alla vägar från roten till löven är ungefär lika långa. D) Alla nivåer är kompletta. Uppgift 22 Antag att man lagrar en heap i form av en vektor så att noden vid index i har vänster barn vid 2i och höger barn vid 2i + 1. Heapen har från början följande innehåll: 5 13 7 28 15 11 35 30 45 17 90 (första elementet har index 1) Vad blir resultatet ifall man tar bort rotelementet och återställer heapegenskaperna? A) 7 13 11 28 15 17 35 30 45 90 B) 7 13 11 28 15 90 35 30 45 17 C) 7 13 17 28 15 11 35 30 90 45 D) 7 13 17 28 15 11 35 30 45 90 A) Rekursion. B) Objektorientering. C) Abstraktion. D) Induktion. Uppgift 24 Vad är körtiden för denna algoritm? algoritm pnyxtr(v): n=len(v) if n<2: return mid=n/2 a=v[0:mid] b=v[mid:n] pnyxtr(a) pnyxtr(b) i=0; j=0; k=0 for k in range(n): if i<mid and j<n-mid: if a[i]<b[j]: v[k]=a[i]; i=i+1 else: v[k]=b[j]; j=j+1 elif i<mid: v[k]=a[i]; i=i+1 else: v[k]=b[j]; j=j+1 A) O(log n) B) O(n) C) O(n log n) D) O(n 2 ) Uppgift 25 Vilken datastruktur använder Google för att hitta alla webbsidor som innehåller angivna sökord? A) En hashtabell med alla lagrade webbsidor. B) En hashtabell med alla förekommande ord. C) En hashtabell för varje lagrad webbsida. D) En hashtabell för varje förekommande ord. 4

Uppgift 26 Uppgift 30 Enligt rapporten Sex i Sverige har kvinnor i snitt haft 4,6 samlagspartner medan männen har haft 7,1. I vilket akademiskt ämne hör detta exempel hemma? A) Genusvetenskap. B) Evolutionsteori. C) Logik. D) Sociologi. Med en abstrakt datatyp menar man följande. A) En datastruktur. B) En modul som kan importeras. C) En eller flera operationer. D) En abstrakt klass. Uppgift 27 Man söker den effektivaste processen för att framställa en önskad substans från en given substans. Alla kemiska reaktioner med uppgift om utbytet (i procent) finns i en databas. Vilken algoritm är lämpligast? A) Rekursiv djupetförstsökning. B) Djupetförstsökning med stack. C) Breddenförstsökning. D) Bästaförstsökning. Uppgift 31 Ett reguljärt uttryck används för ett av följande ändamål. Vilket? A) Söksträngar. B) Objektmodellering. C) Grafalgoritmer. D) Vektorkalkyl i Python. Uppgift 28 Hammingavstånd hör ihop med ett av följande begrepp. A) Spännande träd. B) Entropi. C) Felkorrektion. D) Kruskals algoritm. Uppgift 29 Ett av följande påståenden om Huffmankodning är falskt. Vilket? A) Det är en statistisk metod. B) Den används i JPEG. C) Den används i MP-3. D) Patentet har just gått ut. Uppgift 32 Antag att vi representerar en stack i form av en vektor (array) samt ett index som håller reda på stackens topp. Vektorn och indexvariablerna är från början nollställda. Vad kommer vektorn att innehålla efter nedanstående operationer? s = Stack() s.push(17) s.push(4711) x = s.pop() s.push(666) s.push(7) s.push(x) A) 17 4711 0 666 7 0 0 0 0 B) 7 666 4711 0 0 0 0 0 0 C) 17 4711 666 7 0 0 0 0 0 D) 17 666 7 4711 0 0 0 0 0 5

Uppgift 33 Uppgift 37 Hur lagrar man ett binärt sökträd i en stack för att kunna återskapa det? A) I preordning. B) I inordning. C) I postordning. D) Det går inte! Uppgift 34 För att sortera befolkningen (cirka nio miljoner) efter personnummer (tio siffror) skulle det krävas så här många jämförelseoperationer. (Nio miljoner är ungefär två upphöjt till tjugotre.) A) Cirka tvåhundra miljoner. B) Cirka nittio miljoner. C) Cirka fyrtiosex miljoner. D) Cirka arton miljoner. En automat specificeras av ett av följande. A) Tillståndsvektorn. B) En funktion från indata till utdata. C) Övergångsmatrisen. D) En riktad graf där kanterna är märkta med tillstånd. Uppgift 35 Du står utanför ett rum med tio för dej okända personer och du måste bjuda en av dom på balen. Dom kommer ut en och en och du bedömer iskallt hur attraktiva dom är på en skala 0-100. Hur finner du strategin som ger genomsnittligt högsta utdelning? A) Divide-and conquer. B) Bästaförstsökning med trappa. C) Dijkstras algoritm. D) Dynamisk programmering. Uppgift 36 Vilken av följande metoder är oduglig för att lösa labyrinter? A) Djupetförstsökning. B) Dynamisk programmering. C) Prims algoritm. D) Breddenförstsökning. Uppgift 38 Ett syntaxträd för uttrycket 2*(3+4*5) har en av följande egenskaper. Vilken? A) Det har fyra noder. B) Det har fyra löv. C) Det är balanserat. D) Roten är 46. Uppgift 39 Vad gör denna algoritm? algoritm OK(x, y): p = x while not p is None: if p.data == y: return True elif p.data > y: p = p.left else: p = p.right return False A) Kollar att nyckeln x finns i ett binärt sökträd B) Kollar att nyckeln y finns i ett binärt sökträd C) Kollar att nyckeln p finns i ett binärt sökträd D) Kollar att nyckeln data finns i ett binärt sökträd 6

Uppgift 40 Rabin-Karp är en testsökningsmetod som använder ett av följande. Uppgift 43 Abstraktion har flera fördelar, men vilken av följande har den inte? A) Nextvektor. B) Hashning. C) Bloomfilter. D) Baklängesmatchning. Uppgift 41 En bra rekursiv tanke för trädhöjd kan se ut nåt så här. A) Största höjden av delträden plus ett. B) Längsta vägen från rot till löv. C) Djupetförstsökning med rekordnotering för uppnått djup. D) Höjden för vänster delträd...men om höger delträd är högre är det det som gäller. Uppgift 42 A) Koden blir inte åtkomlig för obehöriga. B) Gränssnittet säger allt. C) Användaren behöver inte bekymra sej om implementationen. D) Konstruktören kan förbättra konstruktionen utan att det stör användaren. Uppgift 44 Vilken sorteringsalgoritm ger följande mellanresultat? 13 5 9 11 3 6 8 6 5 9 11 3 13 8 6 5 3 11 9 13 8 6 5 3 8 9 13 11 3 5 6 8 9 11 13 A) Mergesort B) Quicksort C) Insättningssortering D) Heapsort Antag att man har ett binärt sökträd. Vilken av följande algoritmer skriver ut det största nyckelvärdet? A) def Mysko(root): while not root is None: Mysko(root.right) print root.key B) def Mysko(root): while not root is None: root=root.right print root.key C) def Mysko(root): a=mysko(root.left) b=mysko(root.right) if a<b: print b else: print a D) def Mysko(root): while not root.right is None: root=root.right print root.key Uppgift 45 Antag att man lagrat 1000 element i en ordnad vektor och konstaterar att det i medeltal tar 7 ms att hitta ett element från dess nyckelvärde. Hur lång tid kan man förvänta sig att det tar om man istället lagrar 1000 000 element? A) 14 ms B) 49 ms C) 7 s D) 14 s Uppgift 46 Ord i alfabetet a b med ett jämnt antal a beskrivs av ett av följande reguljära uttryck. A) (aa)*b* 7

B) ab*ab** C) b*(ab*ab*)* D) b*(aa)*b* Uppgift 47 En Knuth-Morris-Pratt-automat för söksträngen KAKAN har följande nextvektor. A) 0 1 2 1 1 B) 0 1 1 2 3 C) 0 1 0 1 3 D) 0 0 1 1 1 Uppgift 48 Viggos stavningsprogram Stava har en svaghet. Vilken? A) Släpper ibland igenom felstavningar. B) Kan inte föreslå rättstavningar. C) Kan inte kryptera sin databas. D) Låter inte användaren lägga till egna ord. Uppgift 49 Vissa algoritmer kallas giriga. Vilken av följande är inte girig? A) Breddenförstsökning. B) Prims algoritm. C) Kruskals algoritm. D) Dijkstras algoritm. Uppgift 50 Antag att vi har en n n-matris A med bara nollor och ettor som värden. Vilken av följande algoritmer hittar snabbast positionen för den högraste ettan och returnerar dess kolumnindex? A) max = 0 for i = n..1: for j = n..1: if A[j,i] == 1: max=j return max B) max = 0 for i = 1..n: for j = 1..n: if A[i,j] == 1 break if j > max: max = j return max C) max = 0 for i = 1..n: for j = max+1..n: if A[i,j] == 1: max=j return max D) max = 0 for i = 1..n: j=n while j>max and A[i,j]==0: j = j-1 max = j return max 8