Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep.
|
|
- Mathijs Devos
- 5 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven. 1. Maximum in Direct Address: Zie boek, Cormen Bekijk alle plekken van de array van achter af. Als het maximum B is, bekijk je zo m B posities. Dat kan oplopen tot Θ(m) wanneer B klein is. 2. Aantal Collisions: Zie boek, Cormen ( ) n Voor elk paar (k, l), waar er oftwel 1 n(n 1) van zijn, is de kans op 2 2 ( ) een botsing 1. Het verwachte aantal is daarom n 1 n(n 1), wat gelijk is aan m 2. m 2m 3. Hashen uitproberen: Zie boek, Cormen Hashen naar gesorteerde lijst: Zie boek, Cormen Voor succesvol zoeken maakt het niet uit, zolang je elke key evenvaak vraagt. Succesloos zoeken wordt iets sneller omdat je gemiddeld halverwege de lijst kunt stoppen. Invoegen wordt duurder omdat je de lijst moet doorploegen in plaats van voor- of achteraan zetten in constante tijd. Voor Delete geldt het zelfde als voor succesvol zoeken. De besparing is marginaal omdat het idee van hashing is, dat de lijsten zeer kort zijn dus hun performance nauwelijks van belang. 5. Hashen Worst Case: Zie boek, Cormen Bij een gegeven hash functie H kun je per locatie i kijken naar het aantal elementen van U dat naar i hasht, noem dit s i. Omdat de #U elementen naar m locaties hashen, is het gemiddelde aantal keys per locatie #U/m, en volgens het gegeven is dit groter dan n. Voor elke verzameling getallen is het maximum minstens zo groot als het gemiddelde (pigeon hole principle), dus de grootste s i is zeker groter dan n. 6. Samplen uit Hashtabel: Zie boek, Cormen
2 7. Hashes in linked list: Zie boek, Cormen Om te zoeken in een gelinkte lijst, moet je de aanwezige elementen een voor een vergelijken met je query-key. Hier zijn de keys lange strings, en het vergelijken van zo n key kost daarom meer tijd (evenredig met de lengte van de strings in het slechtste geval). Bereken eerst de hash waarde van de query-key. Vergelijk voor elk element in de lijst eerst de hash-waarde, en alleen bij gelijkheid de hele string. De opgave noemt geen gegevens waarmee je het effect kunt uitrekenen. Stel dat de lijst n elementen bevat en dat de strings elk uit l tekens bestaan; bij string vergelijken heb je pech wanneer de strings in het begin overeen komen. Stel dat de hash m waarden kan hebben en uniform is. Een onsuccesvolle zoekactie zonder gebruik van hash kost n keer een string vergelijken, dus Θ(nl) tijd. De nieuwe methode vergelijkt n hashes, en een hele string in 1 per m gevallen, dus kost Θ(n + nl/m). Aangezien m meestal vrij groot is, zal dit in de praktijk een factor l schelen. 8. Ruimte-efficient hashen: Zie boek, Cormen Noem de r karakters c 0 t/m c r 1. De numerieke waarde van de string als radix-128 getal is i 128i c i. Je kunt dit snel modulo m uitrekenen met Horner s Rule, waarbij je na elke stap reduceert modulo m: h = c[r-1] for (int i = r-2; i >= 0 ; i--) h = (h * c[i]) % m; return h; 9. Letterwissel: Zie boek, Cormen De vraag is in feite een abstracte versie van de negenproef; om de rest mod 9 van een getal te bepalen, hoef je alleen maar de cijfers bij elkaar te tellen. Verwisseling van cijfers geeft uiteraard nog steeds hetzelfde resultaat. De radix R is hier R = 2 p en m = 2 p 1, en die combinatie is heel slecht. Er geldt immers dat R = 1 (mod m) en daarmee heeft ook elke macht van R, rest 1: R i %m = 1. De hashfunctie kent aan de string met karakters c 0 t/m c l 1 de hash h = ( i Ri c i )%m toe, maar vanwege de keuze van R en m is dit gelijk aan i c i (deze waarde zal meestal kleiner dan m zijn). Aan deze formule zie ten eerste dat de volgorde van de letters niet uitmaakt. Een tweede, misschien wel groter bezwaar, is dat de waarden heel klein zijn. Met strings van l tekens uit een alfabet van R is de waarde kleiner dan l R. Je krijgt dus veel collisions onderin je hashtabel. 10. Fibonacci-hash: Zie boek, Cormen Ik kom op 700, 318, 936, 554, 172, dus er lijkt wel enige spreiding te zijn.
3 11. Invoegen in Open Adressering: Boek, Cormen Verwijderen bij Open Adressering: Boek, Cormen Zoektijd bij Open Adressering: Boek, Cormen Bij een onsuccesvolle zoekactie ga je door tot een leeg slot, wat je steeds met kans (1 α) tegenkomt. Volgens Stelling 11.6 is de verwachte zoektijd 1, dus 1 α respectievelijk 4 en 8. Bij succesvol zoeken loop je de sequence alleen af tot je de key vindt, en volgens Stelling 11.8 is het aantal verwacht hoogstens 1 ln 1. Voor α = 3/4 α (1 α) is dit 1,85 en voor α = 7/8 is dit 2, HashCode voor string: Zoek uit hoe C# een hashcode bepaalt voor type String. Kun je twee strings bedenken die dezelfde HashCode hebben?
4 15. ContainsValue: Christa slaat records op die een (spelers) naam en een score bevatten. Zij wil kunnen invoegen/verwijderen/zoeken op naam, en zij heeft een efficiente ZoekSc(s) nodig die de naam oplevert van een speler met score s. (a) Christa overweegt opslag in een hashtabel met de naam als key. Hoe kan zij een ZoekSc(s) uitvoeren? (b) Hoeveel tijd kost de ZoekSc bij deze opslag (noem de lengte van de hashtabel m en het aantal records n)? (c) Kan Christa haar ZoekSc(s) sneller krijgen door de records in een zoekboom op te slaan? Leg uit. (a) Christa moet alle records enumereren en checken of s erin zit (en kan misschien eerder termineren als ze s vindt). (b) Voor een hashtabel met m plaatsen en n keys kost dit O(n + m) tijd, dus zeg lineair. (c) Een zoekboom is voor Christa niet beter. Je kunt wel meer met de keys waarop de boom geordend is, maar zoeken op een andere waarde kan niet efficienter dan lineair. Christa zal haar boom moeten ordenen op naam en dan kost zoeken op score lineaire tijd. (Christa kan het beste bij haar verzameling records, twee hashtabellen maken: eentje waarin gehasht wordt op de key en eentje waarin gehasht wordt op value. Alle vier de operaties kunnen dan in O(1) tijd. Tot 3pt, 1 per deelvraag. Voor de beoordeling moet wel duidelijk zijn dat je het centrale probleem snapt: dat Christa wil zoeken op een veld dat niet de key van de datastructuur is. B = Een Boom is altijd trager dan een hashtabel omdat (door de aanpassing van m aan n) de α doorgaans begrensd blijft. C = Ze moet een ContainsValue doen, ja, ok, maar hoe moet dat dan? 0pt. E = Boom Enumereert sneller omdat je de lege velden niet hebt geeft maar 1/2pt. Bij normale load factor enumereren hashtabel en boom in lineaire tijd, en Θ(n) is nog steeds heel veel. H = Uitlag hoe Hashen normaal werkt (key afbeelden op getal en in array opzoeken) Werd niet gevraagd. L = Bij begrensde Load factor α zijn n en m asymptotisch gelijk en kun je Θ(n) of Θ(m) schrijven. N = Itereren over alle Namen kan niet zomaar in een hashtabel. S = Een zoekboom (of hashtabel) met Score als key is niet goed voor Christa omdat ze daarmee geen toegang meer heeft met een naam, 0pt.
5 16. Hashen van Strings: Nico bouwt een hashtabel om gegevens van ongeveer een miljoen studenten op te slaan. Hij wil snel kunnen toevoegen, zoeken en verwijderen op naam. Om deze opgave niet te moeilijk te maken, nemen we aan dat elke naam een rijtje is van hoogstens 12 letters (a t/m z). (a) Welke twee manieren zijn er om keys met gelijke hashwaarde af te handelen, en welke raad je aan voor Nico en waarom? (b) Nico geeft elke letter een getal (namelijk a=1, b=2, tot z=26) en berekent de HashCode als de lettersom (dus bv Tel heeft HashCode 37). Waarom werkt Nico s tabel erg traag? (c) Geef een functie die wel geschikt is als hash-functie. (a) Hashen kan met chaining (waarbij je elke key met hashwaarde i opslaat in een lijst A[i]) of met open addressing (waarbij je keys laat uitwijken naar andere posities wanneer hun positie al bezet is). Dat Nico wil verwijderen is een goede reden om Chaining te gebruiken. (b) Er zijn veel te veel botsingen. Omdat er hoogstens 12 letters zijn is de maximale HC 312. Alle miljoen studenten komen dus in de eerste 312 lijsten terecht, met een gemiddelde van 3000 per lijst. (c) Om ook de hogergenummerde lijsten te gebruiken, en de keys beter te spreiden, kun je de letterwaarden vermenigvuldigen met een waarde die afhangt van hun positie, bv. tel de i-de letter maal 26 i. Je kunt dan heel grote getallen krijgen, maar voor de positie in de hashtabel neem je toch weer HC modulo lengte. Tot 3pt, een per deelvraag. Codes: B = Er komen teveel Botsingen is niet genoeg, moet uitleg bij, 1/2pt. M = Het noemen of beschrijven van de Methodes is al genoeg bij (a) om een halve te verdienen. V = Je hashfunctie is invariant onder permutatie van letters (bijvoorbeeld: product, ook inv onder toevoeging van as), 1/2pt. 17. Range in Hashtabel: Gegeven is een hashtabel, waarin collisions zijn opgelost met chaining, en de keys zijn integers. (a) Geef een methode RQ(int a, int b) die alle keys tussen a en b afdrukt. (b) Wat is de looptijd van je query, uitgedrukt in n en m (aantal keys en lijsten). Waarom? (a) Dit kan alleen door alle keys te enumereren en conditioneel af te drukken: RQ(int a, int b) { for (int j=0; j < m; j++) foreach (int k in HT[j]) // HT[j] is een List if (a <= k && k < b) Console.WriteLine(k) (b) Enumeratie van een lijst is lineair in het aantal elementen, en je moet de lijsten aflopen, totaal O(n + m). Tot 2pt. Codes: B = Brute-Forcen over keys: kijk voor elke i in de range of i voorkomt. Dit kan, maar omdat keys vrij groot kunnen zijn is dit heel kostbaar. Het kost O(b a) tijd, dus niet begrensd door een functie van de tabelgrootte. L = Lijsten HT[a] t/m HT[b] bevatten heel andere keys dan die worden gevraagd.
6 18. Zoeken in Hashtabel: In een hashtabel (met chaining) heeft succesvol zoeken een andere analyse dan succesloos zoeken. Ga uit van een hashtabel met n keys en m lijsten, en load factor α = n/m. (a) Bij welk van deze twee gevallen druk je de zoektijd uit in de gemiddelde lijstlengte? Geef een uitdrukking voor de zoektijd. (b) Bij welk van de twee gevallen hangt de zoektijd af van het gemiddelde kwadraat van de lijstlengte? Leg uit waarom. (a) Bij de succesloze zoekactie. Je moet daar een van de lijsten, een willekeurige, doorlopen (om te constateren dat je key niet voorkomt). De tijd is O(1 + α). (b) Bij de succesvolle zoekactie wordt elke voorkomende key met gelijke kans gevraagd. Je zoekt dus in een lijst van gemiddelde lengte, waarbij je echter niet direct middelt over de lijsten, maar over de keys. Dat betekent dat bij een lijst met l elementen, deze lengte l ook l keer meeweegt in het gemiddelde. Het relevante gemiddelde is dus 1 m i (l2 i ). Ruwweg een punt per deelvraag, maar in combinatie beoordeeld. Beoordelingscodes: A = Je hebt Alleen de match goed (van de twee gemiddelden op de twee gevallen). Verder geen zinvolle en correcte uitleg: 1/2pt. α = De 1 hoort er echt bij in O(1 + α). Je kunt de zoektijd niet willekeurig klein maken door α te verlagen, omdat de hash ook berekend moet worden. De uitdrukking O(α) voor de succesloze zoektijd is daarom strikt genomen niet juist. Omdat zeer kleine waarden van α meestal vermeden worden, is O(α) toch als F meegerekend. D = Succesvol Duurt langer is niet persé juist, omdat je (gemiddeld) halverwege de lijst stopt. F = De match is goed en de Formule voor de tijd bij (a): 1pt. G = Geen Goeie match gemaakt: 0pt. L = Bij succesloos Loop je alle lijsten af : Gelukkig niet zeg! T = ZoekTijd O(n) of O(n + m): zo traag is een hashtabel gelukkig niet! U = Uitleg te vaag, incompleet, onjuist of ontbrekend.
Tweede Toets Datastructuren 29 juni 2016, , Educ-Γ.
Tweede Toets Datastructuren 29 juni 2016, 13.30 15.30, Educ-Γ. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 2 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Priority queue Priority queue ADT insert(q, x): voeg element x toe aan de queue maximum(q):
Nadere informatieTweede Toets Datastructuren 28 juni 2017, , Educ-β.
Tweede Toets Datastructuren 28 juni 2017, 13.30 15.30, Educ-β. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag interpreteert
Nadere informatieDatastructuren en Algoritmen
Datastructuren en Algoritmen Tentamen Vrijdag 6 november 2015 13.30-16.30 Toelichting Bij dit tentamen mag je gebruik maken van een spiekbriefje van maximaal 2 kantjes. Verder mogen er geen hulpmiddelen
Nadere informatieTweede Toets Datastructuren 26 juni 2019, , Educ-β.
Tweede Toets Datastructuren 26 juni 2019, 17.00 19.00, Educ-β. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag interpreteert
Nadere informatieTweede Toets Datastructuren 27 juni 2018, , Olympos Hal 2.
Tweede Toets Datastructuren 27 juni 2018, 13.30 15.30, Olympos Hal 2. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag
Nadere informatieHoofdstuk 9. Hashing
Hoofdstuk 9 Hashing Het zoeken in een verzameling van één object is in deze cursus al verschillende malen aan bod gekomen. In hoofdstuk 2 werd uitgelegd hoe men een object kan zoeken in een array die veel
Nadere informatie29 november 2012 Hashing. Een tijd-ruimte afweging Hashfuncties
Hashing Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 november 2012 ODE/FHTBM Hashing 29 november 2012 1/30 Hashing Een typisch gebruik van de implementatie
Nadere informatieHutscodering. De techniek: illustratie. een tabel met 7 plaatsen, genummerd van 0 tot en met 6.
Hutscodering die leeg kunnen zijn, tabel T: abstract stockage middel met plaatsen elementen vd. vorm (K, I) K is de sleutel (of key) en I bijhorende informatie creatie van een lege tabel; een nieuw element
Nadere informatieOpgaven Abstracte Datastructuren Datastructuren, Werkgroep, 31 mei 2017.
Opgaven Abstracte Datastructuren Datastructuren, Werkgroep, 31 mei 2017. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes
Nadere informatieDerde college complexiteit. 7 februari Zoeken
College 3 Derde college complexiteit 7 februari 2017 Recurrente Betrekkingen Zoeken 1 Recurrente betrekkingen -1- Rij van Fibonacci: 0,1,1,2,3,5,8,13,21,... Vanaf het derde element: som van de voorgaande
Nadere informatieEerste Toets Datastructuren 22 mei 2019, , Educ-β en Megaron.
Eerste Toets Datastructuren 22 mei 209, 3.30 5.30, Educ-β en Megaron. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag
Nadere informatieOpgaven Analyse van Algoritmen 10 mei 2019, Datastructuren, Werkgroep.
Opgaven Analyse van Algoritmen 10 mei 019, Datastructuren, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot
Nadere informatieUitwerking tentamen Analyse van Algoritmen, 29 januari
Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4
Nadere informatieO(1) ZOEKMETHODEN: HASH TECHNIEKEN. Dr. D.P. Huijsmans 24 okt 2012 Universiteit Leiden LIACS
O(1) ZOEKMETHODEN: HASH TECHNIEKEN 1 Dr. D.P. Huijsmans 24 okt 2012 Universiteit Leiden LIACS SNEL ZOEKEN IN ONGESORTEERDE DATA Vroege computer toepassingen waren vaak gebaseerd op grote gesorteerde bestanden;
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieVierde college complexiteit. 14 februari Beslissingsbomen
College 4 Vierde college complexiteit 14 februari 2017 Restant zoeken Beslissingsbomen 1 Binair zoeken Links := 1; Rechts := n; while Links Rechts do Midden := Links + Rechts 2 ; if X = A[Midden] then
Nadere informatieVierde college algoritmiek. 23/24 februari Complexiteit en Brute Force
Algoritmiek 2017/Complexiteit Vierde college algoritmiek 23/24 februari 2017 Complexiteit en Brute Force 1 Algoritmiek 2017/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:
Nadere informatieO(1) ZOEKMETHODEN: HASH TECHNIEKEN. Dr. D.P. Huijsmans College 7 16 okt 2013 Universiteit Leiden LIACS
O(1) ZOEKMETHODEN: HASH TECHNIEKEN 1 Dr. D.P. Huijsmans College 7 16 okt 2013 Universiteit Leiden LIACS SNEL ZOEKEN IN ONGESORTEERDE DATA Vroege computer toepassingen waren vaak gebaseerd op grote gesorteerde
Nadere informatieEerste Toets Datastructuren 11 juli 2018, , Educ-α.
Eerste Toets Datastructuren 11 juli 2018, 13.30 15.30, Educ-α. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag interpreteert
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieOpgaven Zoekbomen Datastructuren, 20 juni 2018, Werkgroep.
Opgaven Zoekbomen Datastructuren, 20 juni 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven.
Nadere informatieOpgaven QuickSort 3 mei 2019, Werkgroep, Datastructuren.
Opgaven QuickSort 3 mei 2019, Werkgroep, Datastructuren. Als je klaar bent, maak dan de opgaven van vorige keer af. Cijfer: Op een toets krijg je meestal zes tot acht opgaven. 1. Doe QuickSort: Voer QuickSort
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieVierde college complexiteit. 16 februari Beslissingsbomen en selectie
Complexiteit 2016/04 College 4 Vierde college complexiteit 16 februari 2016 Beslissingsbomen en selectie 1 Complexiteit 2016/04 Zoeken: samengevat Ongeordend lineair zoeken: Θ(n) sleutelvergelijkingen
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieProgrammeermethoden NA. Week 6: Lijsten
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal
Nadere informatieUitgebreide uitwerking Tentamen Complexiteit, juni 2017
Uitgebreide uitwerking Tentamen Complexiteit, juni 017 Opgave 1. a. Een pad van de wortel naar een blad stelt de serie achtereenvolgende arrayvergelijkingen voor die het algoritme doet op zekere invoer.
Nadere informatieVierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument
Complexiteit 2019/04 College 4 Vierde college complexiteit 26 februari 2019 Beslissingsbomen en selectie Toernooimethode Adversary argument 1 Complexiteit 2019/04 Zoeken: samengevat Ongeordend lineair
Nadere informatieUitgebreide uitwerking Tentamen Complexiteit, mei 2007
Uitgebreide uitwerking Tentamen Complexiteit, mei 007 Opgave. a. Een beslissingsboom beschrijft de werking van het betreffende algoritme (gebaseerd op arrayvergelijkingen) op elke mogelijke invoer. In
Nadere informatieTweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.
Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege. Kijk het huiswerk van je collega s na en schrijf de namen van de nakijkers linksboven en het totaalcijfer rechts onder de namen
Nadere informatieProgrammeermethoden NA
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder
Nadere informatieDivide & Conquer: Verdeel en Heers vervolg. Algoritmiek
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:
Nadere informatieDatastructuren Uitwerking jan
Datastructuren Uitwerking jan 2015 1 1a. Een abstracte datastructuur is een beschrijving van een datastructuur, met de specificatie van wat er opgeslagen wordt (de data en hun structuur) en welke operaties
Nadere informatieExamen Algoritmen en Datastructuren III
Derde bachelor Informatica Academiejaar 2008 2009, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. Stellingen
Nadere informatieExamen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni 2011
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2010-2011 21 juni 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief
Nadere informatieOpgaven Lineair Sorteren Datastructuren, 15 mei 2019, Werkgroep.
Opgaven Lineair Sorteren Datastructuren, 15 mei 2019, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht
Nadere informatieextra oefening algoritmiek - antwoorden
extra oefening algoritmiek - antwoorden opgave "Formule 1" Maak een programma dat de gebruiker drie getal A, B en C in laat voeren. De gebruiker zorgt ervoor dat er positieve gehele getallen worden ingevoerd.
Nadere informatieProgrammeren in C++ Efficiënte zoekfunctie in een boek
Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!
Nadere informatieOpgaven Eigenschappen van Getallen Security, 2018, Werkgroep.
Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht
Nadere informatieOpgaven Registers Concurrency, 29 nov 2018, Werkgroep.
Opgaven Registers Concurrency, 29 nov 2018, Werkgroep. Gebruik deze opgaven om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven. 1. Safe Integer: Van een
Nadere informatieVierde college algoritmiek. 1 maart Toestand-actie-ruimte Brute Force
Algoritmiek 2019/Toestand-actie-ruimte Vierde college algoritmiek 1 maart 2019 Toestand-actie-ruimte Brute Force 1 Algoritmiek 2019/Toestand-actie-ruimte Torens van Hanoi Voorbeeld 3: Torens van Hanoi
Nadere informatieOpgaven Fibonacci-getallen Datastructuren, 23 juni 2017, Werkgroep.
Opgaven Fibonacci-getallen Datastructuren, 3 juni 017, Werkgroep Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege Cijfer: Op een toets krijg je meestal zes tot acht
Nadere informatieZevende college complexiteit. 7 maart Mergesort, Ondergrens sorteren (Quicksort)
College 7 Zevende college complexiteit 7 maart 2017 Mergesort, Ondergrens sorteren (Quicksort) 1 Inversies Definitie: een inversie van de permutatie A[1],A[2],...,A[n] is een paar (A[i],A[j]) waarvoor
Nadere informatieOpgaven Binair Zoeken en Invarianten Datastructuren, 4 mei 2016, Werkgroep.
Opgaven Binair Zoeken en Invarianten Datastructuren, 4 mei 2016, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal
Nadere informatieProgrammeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:
Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen
Nadere informatieOpgaven Sommaties Datastructuren, 8 mei 2019, Werkgroep.
Opgaven Sommaties Datastructuren, 8 mei 019, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven.
Nadere informatieOpgaven Binair Zoeken en Invarianten Datastructuren, 28 april 2017, Werkgroep.
Opgaven Binair Zoeken en Invarianten Datastructuren, 28 april 2017, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal
Nadere informatieOpgaven Stacks, Lijsten, Queues Datastructuren, Werkgroep, 2 juni 2017.
Opgaven Stacks, Lijsten, Queues Datastructuren, Werkgroep, 2 juni 2017. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes
Nadere informatieZoek- en sorteeralgoritmen en hashing
Zoek- en sorteeralgoritmen en hashing Femke Berendsen (3689301) en Merel van Schieveen (3510190) 9 april 2013 1 Inhoudsopgave 1 Inleiding 3 2 Zoek- en sorteeralgoritmen 3 2.1 Grote O notatie..........................
Nadere informatieVijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument
Complexiteit 2017/05 College 5 Vijfde college complexiteit 21 februari 2017 Selectie Toernooimethode Adversary argument 1 Complexiteit 2017/05 Opgave 28 Gegeven twee oplopend gesorteerde even lange rijen
Nadere informatieTweede Toets Security 9 november 2016, , Educ-α.
Tweede Toets Security 9 november 2016, 8.30 10.30, Educ-α. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je
Nadere informatieOpgaven Zoekbomen Datastructuren, 15 juni 2016, Werkgroep.
Opgaven Zoekbomen Datastructuren, 15 juni 2016, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven.
Nadere informatieIndexen.
Indexen joost.vennekens@kuleuven.be Probleem Snel gegevens terugvinden Gegevens moeten netjes geordend zijn Manier waarop hangt af van gebruik Sequentieel Gesorteerde gegevens, die in volgorde overlopen
Nadere informatieAmorized Analysis en Union-Find Algoritmiek
Amorized Analysis en Union-Find Vandaag Amortized analysis Technieken voor tijdsanalyse van algoritmen Union-find datastructuur Datastructuur voor operaties op disjuncte verzamelingen Verschillende oplossingen
Nadere informatieExamen Algoritmen en Datastructuren III
Derde bachelor Informatica Academiejaar 2006 2007, tweede zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2009 2010, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieEerste Huiswerk Algoritmiek 18 februari 2015, uitwisselen, WerkCollege.
Eerste Huiswerk Algoritmiek 18 februari 2015, uitwisselen, WerkCollege. Kijk een huiswerkset na met een team van twee, voorzie de uitwerking van commentaar en becijfering, en neem de nagekeken set mee
Nadere informatieZevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort
College 7 Zevende college complexiteit 17 maart 2008 Ondergrens sorteren, Quicksort 1 Sorteren We bekijken sorteeralgoritmen gebaseerd op het doen van vergelijkingen van de vorm A[i] < A[j]. Aannames:
Nadere informatieString Matching. Algoritmiek
String Matching Algoritmiek String Matching Gegeven string (haystack): aabaabbabaaba zoek patroon abba (needle) 4 algoritmen: Naïef Rabin-Karp Eindige Automaat Knuth-Morris-Pratt 2 String Matching (formeel)
Nadere informatieString Matching. Algoritmiek
String Matching Algoritmiek String Matching Gegeven string (haystack): aabaabbabaaba zoek patroon abba (needle) 4 algoritmen: Naïef Rabin-Karp Eindige Automaat Knuth-Morris-Pratt 2 String Matching (formeel)
Nadere informatiepublic boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber
Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden
Nadere informatieTweede college complexiteit. 12 februari Wiskundige achtergrond
College 2 Tweede college complexiteit 12 februari 2019 Wiskundige achtergrond 1 Agenda vanmiddag Floor, Ceiling Rekenregels logaritmen Tellen Formele definitie O, Ω, Θ met voorbeelden Stellingen over faculteiten
Nadere informatieExamen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Schrijf je naam onderaan op elk blad. 2.
Nadere informatieOpgaven Heaps Datastructuren, 8 juni 2018, Werkgroep.
Opgaven Heaps Datastructuren, 8 juni 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven.
Nadere informatieAchtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren
Achtste college algoritmiek 12 april 2019 Verdeel en Heers Dynamisch Programmeren 1 Uit college 7: Partitie Partitie Partitie(A[l r]) :: // partitioneert een (sub)array, met A[l] als spil (pivot) p :=
Nadere informatieRecursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40
Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieElfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort
Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D
Nadere informatieDerde college algoritmiek. 22 februari Complexiteit Toestand-actie-ruimte
Algoritmiek 2019/Complexiteit Derde college algoritmiek 22 februari 2019 Complexiteit Toestand-actie-ruimte 1 Algoritmiek 2019/Complexiteit Opgave 1 bomenpracticum Niet de bedoeling: globale (member-)variabele
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));
Nadere informatieDatastructures. Opdracht 3
Datastructures Opdracht 3 Naam Jeffrey van der Lingen Kevin Huijzendveld Joshua Turpijn Klas IS205 Vak Datastructures Datum 06/11/2016 Inhoudsopgave Inleiding... 3 1. Hashfunctie... 4 1.1 Inleiding...
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 11 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Heaps en heapsort Heap 1 2 3 4 5 6 7 8 9 10 16 14 10 8 7 9 3 2 4 1 16 14 10 8 7 9 3
Nadere informatieSorteren, groeperen en totaliseren
6 Sorteren, groeperen en totaliseren 6.1 Inleiding Een rapport maken begint met het selecteren van de tabellen en het plaatsen van de velden die u in uw rapport wilt afdrukken. Vervolgens sorteert, groepeert
Nadere informatieZevende college Algoritmiek. 6 april Verdeel en Heers
Zevende college Algoritmiek 6 april 2018 Verdeel en Heers 1 Algoritmiek 2018/Backtracking Programmeeropdracht 2 Puzzel 2: D O N A L D G E R A L D + R O B E R T Elke letter stelt een cijfer voor (0,1,...,9)
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieTweede Toets Security Woensdag 8 november 2017, , Educ-α.
Tweede Toets Security Woensdag 8 november 2017, 8.30 10.30, Educ-α. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag
Nadere informatieGegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )
OI 2010 Finale 12 Mei 2010 Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub VOORNAAM :....................................................... NAAM :..............................................................
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
1 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieAchtste college algoritmiek. 8 april Dynamisch Programmeren
Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieINSTRUCT Samenvatting Praktijk Access 2010, H2 SAMENVATTING HOOFDSTUK 2
SAMENVATTING HOOFDSTUK 2 Sorteren en filteren in een tabel Sorteren kun je met de knoppen (Oplopend) en (Aflopend). Hiermee zet je records in alfabetische of numerieke volgorde. Er wordt gesorteerd op
Nadere informatieZevende college algoritmiek. 23/24 maart Verdeel en Heers
Zevende college algoritmiek 23/24 maart 2017 Verdeel en Heers 1 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht 0 1 2 3 0 1 2 3 4 1 2 3 4 5 2 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht
Nadere informatieSmall Basic Programmeren Text Console 2
Oefening 1: Hoogste getal Je leest een reeks positieve gehele getallen in totdat je het getal 0 (nul) invoert. Daarna stopt de invoer en druk je een regel af met het hoogste getal uit de reeks. Voorbeeld:
Nadere informatieProgrammeren (1) Examen NAAM:
Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft
Nadere informatieZevende college algoritmiek. 24 maart Verdeel en Heers
Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties
Nadere informatieTweede deeltoets Algoritmiek 14 april 2015, , Educ-Γ.
Tweede deeltoets Algoritmiek 14 april 2015, 17.00 19.00, Educ-Γ. Motiveer je antwoorden kort. Stel geen vragen over de toets, maar vermeld bij twijfel hoe je de vraag interpreteert. Maak vraag 1 en 2 op
Nadere informatieExamen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010
Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief
Nadere informatieUitwerkingen Sum of Us
Instant Insanity Uitwerkingen Sum of Us Opgave A: - Opgave B: Voor elk van de vier kubussen kun je een graaf maken die correspondeert met de desbetreffende kubus. Elk van deze grafen bevat drie lijnen.
Nadere informatierecursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie
Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk
Nadere informatieIeder tweetal heeft nodig: Een kopie van de slagschipspelletjes: 1. 1A, 1B voor spel A, 2B voor spel A, 3B voor spel 3
Activiteit 6 Slagschepen Zoekalgoritme Samenvatting Computers zijn vaak nodig om informatie te vinden in grote hoeveelheden data. Ze moeten een snelle en efficiënte manier ontwikkelen om dit te doen. Deze
Nadere informatieOefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.
4 Modulair rekenen Oefening 4.1. Merk op dat 2 5 9 2 = 2592. Bestaat er een ander getal van de vorm 25ab dat gelijk is aan 2 5 a b? (Met 25ab bedoelen we een getal waarvan a het cijfer voor de tientallen
Nadere informatieDerde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte
Algoritmiek 2018/Complexiteit Derde college algoritmiek 2 februari 2018 Complexiteit Toestand-actie-ruimte 1 Algoritmiek 2018/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:
Nadere informatieVerzamelingen deel 3. Derde college
1 Verzamelingen deel 3 Derde college rekenregels Een bewerking op A heet commutatief als voor alle x en y in A geldt dat x y = y x. Een bewerking op A heet associatief als voor alle x, y en z in A geldt
Nadere informatieDatastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46
Datastructuren Analyse van algoritmen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren en Algoritmen Datastructuren, 6 ECTS eerstejaars Bachelor INF Datastructuren,
Nadere informatieZesde college complexiteit. 19 maart Mergesort, Ondergrens sorteren Quicksort, Shellsort
College 6 Zesde college complexiteit 19 maart 2019 Mergesort, Ondergrens sorteren Quicksort, Shellsort 1 Vorige keer Voor sorteeralgoritmen gebaseerd op arrayvergelijkingen, waarbij per arrayvergelijking
Nadere informatieTweede Deeltoets Security 3 juli 2015, 8.30 10.30, Educatorium-Γ.
Tweede Deeltoets Security 3 juli 2015, 8.30 10.30, Educatorium-Γ. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op
Nadere informatie1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12
Katern 2 Getaltheorie Inhoudsopgave 1 Delers 1 2 Deelbaarheid door 2, 3, 5, 9 en 11 6 3 Grootste gemene deler en kleinste gemene veelvoud 12 1 Delers In Katern 1 heb je geleerd wat een deler van een getal
Nadere informatieElke groep van 3 leerlingen heeft een 9 setje speelkaarten nodig: 2 t/m 10, bijvoorbeeld alle schoppen, of alle harten kaarten.
Versie 16 januari 2017 Sorteren unplugged Sorteren gebeurt heel veel. De namen van alle leerlingen in de klas staan vaak op alfabetische volgorde. De wedstrijden van een volleybal team staan op volgorde
Nadere informatie