Eerste Toets Datastructuren 25 mei 2018, , Educ-Γ.
|
|
|
- Stefan Kuiper
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Eerste Toets Datastructuren 25 mei 2018, , 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 en beantwoord de vraag zoals je hem begrijpt. Cijfer: Vraag 6 telt voor 2pt en elke andere voor 3pt. Maak vragen 1 en 2 op de voorkant, vragen 3 en 4 op pagina 2 en vragen 5 en 6 op pagina 3 van je blad. 1. Zoeken: Gegeven is een long [] A waarvan de waarden aflopend geordend zijn. Geef een efficiënte methode bool Zoek(long X) die bepaalt of waarde X voorkomt in A. Oplossing: Met binair zoeken bepaal je de laatste waarde die >= X is, waarna je alleen nog moet kijken of die waarde gelijk is aan X. De invariant is nu A[i] X A[j] < X zodat na het zoeken, eventueel X op plek i kan staan (mits die binnen de arraygrenzen ligt): bool Zoek (long X) { int i = -1; int j = A.length; while(j > i+1) { m = (i+j)/2; if (A[m] < X) j=m; else i=m; } if (i == -1) return false; else return (A[i] == X); } Beoordeling/Toelichting: Tot 3pt. Drie verschillen met de standaardcode voor BS: (1) het gaat op longs ipv ints maar dat maakt nauwelijks verschil; (2) je moet een true/false uitkomst geven dus de i en j nog interpreteren; (3) de ordening is aflopend. Codes: A = Is een int genoeg voor de Afmeting van A? Misschien wil je hiervoor wel uint of long gebruiken, maar hier mocht je dat negeren. B = Geeft goede Booleaanse waarde niet. C = Met Conditie (j > i) loopt je lus oneindig door, 1pt eraf. D = Een Duale oplossing die de eerste waarde <= X bepaalt is even goed. E = Early Stopping kost altijd extra tests, minstens 2 per ronde. Er werden ook Early Stoppers gesignaleerd met drie en zelfs vijf tests per ronde! Vaak wijst dit op onzekerheid over wat je aan het doen bent. F = Een conditie mag in een booleaanse Formule staan, schrijf dus niet het omslachtige if (A[i]==X) return true; else return false; maar het kortere return A[i]==X;. G = Zoekcode Gebruikt A niet; verwar niet i met A[i]! K = Kijk eerst apart of X buiten de range van A valt, is overbodig. L = Lineair zoeken kost lineaire tijd, totaal max 1pt. M = Midpointberekening niet te ingewikkeld maken. De beste plek voor de berekening van m is het begin van de loopbody, dus niet buiten de loopbody of aan het eind. N = Foute initialisatie. Vaak werd (bij niet vermelden van een invariant impliciet) er van uit gegaan dat op plekken A[i] en A[j] de gezochte waarde niet staat. De initialisatie i=0; of j=a.length-1 is dan fout omdat je X op die plekken mist. Initialisatie van j op A.length+1 of MaxLong laat je programma uit de arraygrenzen lopen. R = Geen Rekening gehouden met aflopende sortering. S = Speciaal geval dat i == -1 (alle getallen zijn kleiner dan X) vergeten, -1/2pt. T = Binair zoeken gebruikt altijd Twee variabelen om het zoekgebied te beschrijven.
2 2. Sorteren: (a) Wanneer is een sorteermethode stabiel? (Geef definitie in 1 zin.) (b) Waarop moet je bij het programmeren van InsertionSort letten om de implementatie stabiel te krijgen? (Omschrijf in 1 zin.) (c) Bewering: SelectionSort werkt snel wanneer de keys in de invoer in bijna omgekeerde volgorde staan. Is dit juist? Onderbouw je antwoord (kort!). Oplossing: (a) Stabiel betekent dat het algoritme ervoor zorgt dat gelijke keys altijd in dezelfde volgorde in de uitvoer staan als in de invoer. (b) De in te voegen key moet alleen over keys heen springen die strikt kleiner zijn dan die, dus nooit over een gelijke. (c) Dit is onjuist. Elke Selectie-stap kijkt naar alle elementen die nog komen. De rekentijd is dus helemaal niet (zoals bij InsertionSort) afhankelijk van de beginvolgorde. Beoordeling/Toelichting: Per deelvraag 1pt. Codes: C = Concreter aangeven in welke situatie je keys niet moet verwisselen. I = Nee dit geldt voor InsSort : onvolledig want zegt niets over SelSort. L = Nee dan is SelectionSort juist Langzaam is onjuist, 1/2. V = Aantal Verplaatsigen is bij SelectionSort laag namelijk lineair. Z = Als je een USB-stick zoekt in honderd laadjes, ben je snel klaar als hij in een van de eerste laadjes ligt. Maar zoeken naar het kleinste element werkt zo niet! Ook als het kleinste bijna vooraan staat, moet je alles bekijken omdat je niet weet dat hij de kleinste is voordat je alles hebt bekeken.
3 3. Sommaties: Geef de uitkomst, en laat zien hoe je er aan komt, van: (a) n i=1 2i2 +3 i (b) k i=0 3i + 5 (c) n k=0 ( n k Oplossing: (a) De uitkomst is n(n + 1) + 3H n. Door termsplitsing kun je de som splitsen in een Rekenkundige plus Harmonische: n 2i 2 +3 i=1 = n i i=1 2i + 3 n 1 i=1 Termsplits, Const. Fac. i = (n + 1)n + 3H n Rekenkundige regel, Def. Harm. getal (b) De uitkomst is 1 2 (3k+1 1) + 5(k + 1). De term 3 i + 5 is niet meetkundig (reken maar na!) en je kunt de rekenregel meetkundige reeks pas gebruiken na termsplitsing (anders raak je de 5 helemaal kwijt!). Gebruik voor het eerste stukje vuistregel Meetkundige Reeks, voor het tweede deel de Constante Term (er zijn niet k maar k + 1 termen!). (c) Deze som is 2 n. Je mag als bekend gebruiken dat de som van de n de regel van de driehoek van Pascal, 2 n is. Elke kloppende afleiding (bv. met Newtons binomium) mag ook. Beoordeling/Toelichting: Te behalen 3pt, 1 voor elk goed antwoord. Om de zaak overzichtelijk te houden (voor jullie en mij) wordt er alleen een punt gegeven voor een goed antwoord, dus geen punt, halve, kwartpunt of taartpunt als je enkele van de nodige rekenregels goed hebt toegepast maar toch op iets anders uitkomt. A = Het Aantal is n bij (a) en k + 1 bij (b). F = Een goed antwoord verfouterd bij het vereenvoudigen, 1/2pt. H = H n is wel ongeveer ln n maar niet precies. M = De sommatie bij (b) is niet puur Meetkundig, je moet de 5 afsplitsen (TermSplitsing) voordat je de (V E)/(G 1)-regel toepast. N = Niet volledig versimpeld; als het antwoord een gesloten expressie is (dwz. geen sommatie meer bevat) werd meestal volledige punten toegekend. )
4 4. Ordes, Ω, Θ en O: Zijn deze beweringen WAAR of ONWAAR? (a) f(n) = O(2 n ) en f(n) = O(3 n ) zijn equivalent. (b) n 3 = Θ(2 n ). (c) 2 lg n = O(n). (d) O(n lg n) + O(n lg 2 n) = O(n lg n). (e) lg n = Θ( 10 log n). (f) Θ(lg(n 2 )) = Θ(lg(n 3 )). (g) lg((n 2 )!) = O(n 2 lg n). (h) lg(n 2 ) lg(n 2 ) = Θ(lg(n 4 )). (i) 4n lg n + 2n 2 + lg 2 n = O(n 2 ). (j) 4 lg 3 n + 2 n = O(lg n). (Geef duidelijk aan over welke bewering je het hebt.) Oplossing: (a) ONWAAR, want 2 n en 3 n zijn functies van verschillende orde. Bijvoorbeeld f(n) = 2, 5 n is niet O(2 n ), maar wel O(3 n ). (b) ONWAAR, n 3 is namelijk een polynomiale functie (kubisch), en dat is altijd van kleinere orde dan een exponentiële functie. (c) WAAR, want 2 lg n is gewoon n. (d) ONWAAR, de tweede term aan de linkerkant is van strikt grotere orde dan n lg n, en wordt niet geabsorbeerd. Integendeel, hij absorbeert de eerste en het geheel is O(n lg 2 n). (e) WAAR, logaritmen van verschillende grondtallen verschillen maar een constante factor en zijn dus van dezelfde orde (lg n 3, 3 log n). (f) WAAR want lg(n 2 ) is exact 2/3 lg n 3. (g) WAAR, op werkcollege is bewezen dat lg(n!) = Θ(n lg n). Toegepast op (n 2 )! betekent dit Θ(n 2 lg(n 2 )), en de kwadraat binnen de lg maakt geen verschil. (h) ONWAAR, beide factoren links zijn logaritmisch omdat lg(n 2 ) = 2 lg n. Het product is dus Θ(lg 2 n), wat meer is dan aan de rechterkant staat. (i) WAAR want links is de kwadratische term de grootste (ook al staat hij niet vooraan!) en absorbeert de andere termen. (j) ONWAAR, aan de linkerkant is de wortel van grotere orde dan de log, dus de wortel is hier de leidende term en het geheel is polynomiaal, niet polylogaritmisch. Beoordeling/Toelichting: Tot 3pt, 1/2 per goed antwoord vanaf het vijfde (dus 4 goed is 0pt, 5 goed is 1/2pt, 6 goed is 1pt, etc). T = Toelichting hoeft er niet bij, binair antwoord is genoeg.
5 5. Studentnummers sorteren: Je moet een programma schrijven waarmee dagelijks een log van aanmeldingen op de UU-netwerken wordt gesorteerd. Elke log-entry bestaat uit een studentnummer als int en een tekstje van ongeveer 100 karakters. Het aantal van een dag is ongeveer honderdduizend en het moet gesorteerd worden op studentnummer. Counting/RadixSort is hier een goede keuze, maar in hoeveel passes? (a) Hoeveel geheugen en tijd is ongeveer nodig wanneer je alleen Counting Sort gebruikt (dus 1 pass)? (b) Hoeveel geheugen en tijd is nodig als je twee passes gebruikt, eerst op de 16 minst significante bits en dan op de 16 meest significante? (c) Bespreek (kort!) een of twee mogelijke opties voor verdere verbetering. Oplossing: De omvang van de data is ca keer 100 bytes dus 10MB. Het lijkt zinvol, de hoeveelheid te gebruiken data in vergelijking hiermee te bekijken. In een ronde van CountingSort moet je n maal een counter ophogen, dan M optellingen doen voor de cumulatief, en n maal data verplaatsen. (a) Collegekaartnummers hebben 7 cijfers en lopen dus tot 10 miljoen. Je gebruikt een array van 10 miljoen counters (4B per stuk dus 40MB) en het cumuleren kost 10 miljoen stappen. Dat is veel meer dan de twee keer dat ik naar elk van de keys kijk. In O-notatie, van de complexiteit O(n + M) is hier de M dominant. (b) Dit gebruikt tweemaal CountingSort met een M van 65536, waarvoor je dus 4x ofwel 1/4 MB nodig hebt voor de counters, en optellingen voor het cumuleren. Geheugengebruik en cumuleren zijn nu vrij klein ten opzichte van de tijd en het geheugen dat je toch al gebruikt. (c) Kortere passes: Collegekaartnummers zijn altijd kleiner dan 10 miljoen dus van de 32 bits worden er maar 24 gebruikt. Sorteren in twee passes op de 12 minst significante en dan de volgende 12 verkleint de overhead nog wat. Meer passes: Vier passes waarin je op acht bits sorteert verkleinen de M wel, waarmee de tijd van CountingSort iets afneemt, maar je verdubbelt het aantal handelingen voor elk van de keys dus dit is niet slim. BucketSort: De spreiding van collegekaartnummers is niet gelijkmatig over het bereik. Te meer omdat sommige personen heel vaak inloggen. BucketSort is daarom geen goed idee. Insertion/Selection Sort: Kwadratische complexiteit, volkomen onaanvaardbaar. Quick/Merge/Heap Sort: Algemene methoden (comparison based) met Θ(n lg n) complexiteit, lijkt overbodig want Count/Radix-aanpak is veel sneller. Beoordeling/Toelichting: Een punt voor elke deelvraag. Het moet duidelijk zijn dat je begrijpt dat de M overhead bij (a) domineert en bij (b) juist klein is. Codes: B = Noemt BucketSort maar zegt niets over spreiding. Waarschijnlijk is bij een probleem als dit de spreiding slecht, maar als je dit aspect noemt (en zegt dat de spreiding goed is) is het al goed. C = Geheugen en tijd voor Counters (dus de extra Θ(M)) verwaarloosd. D = Elke log Direct invoegen kost je minstens logaritmische tijd per key dus is in totaal zeker niet beter dan twee passes CountingSort. E = Voor meerdere passes heb je maar Eenmaal de array met counters nodig omdat je die hergebruikt.
6 G = Geheugen keer 16b? De 16 MSB en 16 LSB sla je niet apart op. H = De Hoogte van de counters kan tot n oplopen. Tijdens het tellen al omdat je niets weet over de spreiding van de keys (in het meest extreme geval heeft 1 student keer ingelogd!). En bij het berekenen van de cumulatief lopen de waarden aan het eind van de tabel zeker op tot n. M = Meer passes verkleinen het geheugengebruik marginaal, maar laten wel de tijd toenemen, dus niet slim. R = Studentnummers zijn Redundant vanwege een checksum die maakt dat je alleen naar de eerste zes cijfers hoeft te kijken. Je kunt dus in een enkele pass met M = sorteren op (nummer mod 10), of dit nog weer over twee passes M = 1000 verdelen. S = De Satellietdata (100byte strings) wordt niet echt verplaatst. Meestal sla je dit op in objecten en sorteer je de array met objecten, waardoor er alleen pointers echt worden verplaatst.. U = De keys zijn zeker niet Uniek (met logs van studenten). Je kunt ook niet aannemen dat elke student even vaak inlogt; waarschijnlijker is meerdere logins voor weinig studenten en geen voor heel veel studenten. V = Veranderen van dataopslag is het Veranderen van het probleem, niet het oplossen ervan. (In de praktijk zijn siftwarebedrijven hier trouwens erg succesvol mee.) W = Als je twee passes gebruikt in plaats van een, wordt de M niet de helft, maar de Wortel van de oude. Z = Iets noemen wat al in a of b Zit is geen verbetering. 6. Rode kaart: Een standaard pak van 52 kaarten heeft 26 rode en 26 zwarte kaarten. Als je willekeurig tien kaarten eruit pakt, wat is dan de kans dat je precies 4 rode (en dus 6 zwarte) erbij hebt? Oplossing: Pas klassieke kansrekening toe, waarbij elke deelverzameling van tien kaarten een elementaire gebeurtenis is. Het aantal grepen van 10 kaarten is C(52, 10) = 1, 582e10. Hoeveel deelverzamelingen hebben exact vier rode? Er zijn C(26, 4) = combinaties van vier rode kaarten en C(26, 6) = combinaties van zes zwarte, dus 14950* = grepen van tien met vier rode. De gevraagde kans is dus C(26, 4)* C(26, 6) / C(52,10) = Beoordeling/Toelichting: Twee punten voor een goed onderbouwde Codes: D = Antwoord Deels goed. Meerdere keren werd in de teller opgeteld ipv vermenigvuldigd, dan 1/2 totaal. F = Foute formule/uitkomst zonder uitleg; 0pt. P = Als je met Permutaties rekent krijg je P(26, 4)* P(26, 6) / P(52,10) = , de kans dat je eerst achterelkaar vier rode en dan achterelkaar zes zwarte pakt. Vraag gaat hier niet over, 1/2pt. T = Berekening met Teruglegging: kans is C(10, 4) 1 = Geeft 1pt, mits goed 2 10 gemotiveerd en uitgevoerd. Bij teruglegging geeft elke trekking een onafhankelijke kans van 1/2 op een rode kaart, en dan kun je bernoulli gebruiken. Bedoeling van opgave was zonder teruglegging en tekst geeft geen aanleiding dat terugleggen gebeurt.
Eerste 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
Eerste 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
Opgaven 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
Opgaven 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
Opgaven 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.
Opgaven 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
Opgaven 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
Vierde 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
Tweede 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
Tweede 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
Eerste 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
Datastructuren 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
Opgaven 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
Vierde 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
Derde 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
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
Uitgebreide 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.
Tweede 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
Zevende 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
Zevende 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
Programmeermethoden. Recursie. week 11: november kosterswa/pm/
Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,
Opgaven 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
Vijfde 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
Zevende 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:
Recursion. 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
Eerste Toets Concurrency 20 december 2018, , Educ-β.
Eerste Toets Concurrency 20 december 2018, 11.00 13.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
Opgaven 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
Datastructuren 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
Programmeermethoden 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
Uitwerking 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
Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep.
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
Achtste 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
Opgaven 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
Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter [email protected] 22 februari 2009 INDUCTIE & RECURSIE Paragrafen 4.3-4.6 Discrete Structuren Week 3:
Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter
Voorbereidende opgaven VWO Examencursus wiskunde A Tips: Maak de voorbereidende opgaven voorin in een van de A4-schriften die je gaat gebruiken tijdens de cursus. Als een opdracht niet lukt, werk hem dan
Programmeermethoden 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
Opgaven 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.
recursie 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
Opgaven Recursie: Analyse en Master Theorem Datastructuren, 6 juni 2018, Werkgroep.
Opgaven Recursie: Analyse en Master Theorem Datastructuren, 6 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
Combinatorische Algoritmen: Binary Decision Diagrams, Deel III
Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands [email protected] 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse
Inleiding 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
Divide & 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:
Inleiding 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
Oplossing van opgave 6 en van de kerstbonusopgave.
Oplossing van opgave 6 en van de kerstbonusopgave. Opgave 6 Lesbrief, opgave 4.5 De getallen m en n zijn verschillende positieve gehele getallen zo, dat de laatste drie cijfers van 1978 m en 1978 n overeenstemmen.
HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren
HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet
1.1 Rekenen met letters [1]
1.1 Rekenen met letters [1] Voorbeeld 1: Een kaars heeft een lengte van 30 centimeter. Per uur brand er 6 centimeter van de kaars op. Hieruit volgt de volgende woordformule: Lengte in cm = -6 aantal branduren
Opgaven 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
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Eerste deeltoets Algoritmiek 4 maart 2015, , Educ-β.
Eerste deeltoets Algoritmiek 4 maart 2015, 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
Stoomcursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( )
Voorbereidende opgaven VWO Stoomcursus wiskunde A Tips: Maak de voorbereidende opgaven voorin in een van de A4-schriften die je gaat gebruiken tijdens de cursus. Als een opdracht niet lukt, werk hem dan
Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter [email protected] 3 maart 2008 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2009 2010, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Datastructuren. 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,
Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/
Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def
Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter [email protected] 23 februari 2009 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren Week 3 en 4:
Een eenvoudig algoritme om permutaties te genereren
Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Zesde 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
Tweede 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
1.3 Rekenen met pijlen
14 Getallen 1.3 Rekenen met pijlen 1.3.1 Het optellen van pijlen Jeweetnuwatdegetallenlijnisendat0nochpositiefnochnegatiefis. Wezullen nu een soort rekenen met pijlen gaan invoeren. We spreken af dat bij
Nu een leuk stukje wiskunde ter vermaak (hoop ik dan maar). Optellen van oneindig veel getallen
Nu een leuk stukje wiskunde ter vermaak (hoop ik dan maar). Optellen van oneindig veel getallen Ter inleiding: tellen Turven, maar: onhandig bij grote aantallen. Romeinse cijfers: speciale symbolen voor
12 september 2012 Complexiteit. Analyse van algoritmen (doelen) Empirische analyse : Voorbeeld Gevolgen
Complexiteit van Algoritmen Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 12 september 2012 ODE/FHTBM Complexiteit van Algoritmen 12 september 2012 1/41 Efficientie-analyse
1 Complexiteit. of benadering en snel
1 Complexiteit Het college van vandaag gaat over complexiteit van algoritmes. In het boek hoort hier hoofdstuk 8.1-8.5 bij. Bij complexiteitstheorie is de belangrijkste kernvraag: Hoe goed is een algoritme?
Faculteit, Binomium van Newton en Driehoek van Pascal
Faculteit, Binomium van Newton en Driehoek van Pascal 1 Faculteit Definitie van de faculteit Wisnet-hbo update aug. 2007 (spreek uit k-faculteit) is: k Dit geldt voor elk geheel getal k groter dan 0 en
Tentamen Programmeren in C (EE1400)
TU Delft Faculteit EWI Tentamen Programmeren in C (EE1400) 28 jan 2011, 9.00 12.00 - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
8. Complexiteit van algoritmen:
8. Complexiteit van algoritmen: Voorbeeld: Een gevaarlijk spel 1 Spelboom voor het wespenspel 2 8.1 Complexiteit 4 8.2 NP-problemen 6 8.3 De oplossing 7 8.4 Een vuistregel 8 In dit hoofdstuk wordt het
Divide & Conquer: Verdeel en Heers. Algoritmiek
Divide & Conquer: Verdeel en Heers Algoritmiek Algoritmische technieken Trucs; methoden; paradigma s voor het ontwerp van algoritmen Gezien: Dynamisch Programmeren Hierna: Greedy Vandaag: Divide & Conquer
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Tips Wiskunde Kwadratische vergelijkingen: een uitgebreid stappenplan
Tips Wiskunde Kwadratische vergelijkingen: een uitgebreid stappenplan Tips door F. 738 woorden 18 januari 2013 5,9 25 keer beoordeeld Vak Methode Wiskunde Getal en Ruimte Stappenplan voor oplossen van
Opgaven 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.
Aanvulling aansluitingscursus wiskunde. A.C.M. Ran
Aanvulling aansluitingscursus wiskunde A.C.M. Ran 1 In dit dictaat worden twee onderwerpen behandeld die niet in het boek voor de Aansluitingscursus staan. Die onderwerpen zijn: complexe getallen en volledige
[8] De ene 1 is de andere niet
[8] De ene 1 is de andere niet Volg mee via 08_Types.py In de volgende leerfiche gaan we rekenen met Python. Dat kan je in een programma doen, maar dat kan je ook gewoon vanuit het Shell-venster doen.
1 Rekenen in eindige precisie
Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen
III.2 De ordening op R en ongelijkheden
III.2 De ordening op R en ongelijkheden In de vorige paragraaf hebben we axioma s gegeven voor de optelling en vermenigvuldiging in R, maar om R vast te leggen moeten we ook ongelijkheden in R beschouwen.
Wortels met getallen en letters. 2 Voorbeeldenen met de (vierkants)wortel (Tweedemachts wortel)
1 Inleiding Wortels met getallen en letters WISNET-HBO update sept 2009 Voorkennis voor deze les over Wortelvormen is de les over Machten. Voor de volledigheid staat aan het eind van deze les een overzicht
Oefentoets uitwerkingen
Vak: Wiskunde Onderwerp: Hogere machtsverb., gebr. func=es, exp. func=es en logaritmen Leerjaar: 3 (206/207) Periode: 3 Oefentoets uitwerkingen Opmerkingen vooraf: Geef je antwoord al=jd mét berekening
Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:
Geen stijlvol programma: Complexe datastructuren Arrays vijf verschillende variabelen voor iets dat als één rij getallen bestempeld wordt; onbruikbaar wanneer het over meer getallen (bijvoorbeeld ) gaat.
Kerstvakantiecursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven HAVO kan niet korter
Voorbereidende opgaven HAVO Kerstvakantiecursus wiskunde A Tips: Maak de voorbereidende opgaven voorin in een van de A4-schriften die je gaat gebruiken tijdens de cursus. Als een opdracht niet lukt, werk
