Eerste Toets Datastructuren 22 mei 2019, , Educ-β en Megaron.

Vergelijkbare documenten
Opgaven Analyse van Algoritmen 10 mei 2019, Datastructuren, Werkgroep.

Opgaven Sommaties Datastructuren, 8 mei 2019, Werkgroep.

Eerste Toets Datastructuren 25 mei 2018, , Educ-Γ.

Tweede college complexiteit. 12 februari Wiskundige achtergrond

Eerste Toets Datastructuren 11 juli 2018, , Educ-α.

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

Opgaven Recursie: Analyse en Master Theorem Datastructuren, 6 juni 2018, Werkgroep.

Derde college complexiteit. 7 februari Zoeken

Datastructuren en algoritmen voor CKI

Tweede Toets Datastructuren 29 juni 2016, , Educ-Γ.

Vierde college complexiteit. 14 februari Beslissingsbomen

Datastructuren en Algoritmen

Opgaven Bewijzen en Inductie 1 mei 2019, Datastructuren, Werkcollege.

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Opgaven Heaps Datastructuren, 8 juni 2018, Werkgroep.

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie

Tweede Toets Datastructuren 27 juni 2018, , Olympos Hal 2.

Zevende college complexiteit. 7 maart Mergesort, Ondergrens sorteren (Quicksort)

Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Opgaven Binair Zoeken en Invarianten Datastructuren, 4 mei 2016, Werkgroep.

Vierde college algoritmiek. 23/24 februari Complexiteit en Brute Force

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Zevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort

Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep.

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

Opgaven Zoekbomen Datastructuren, 20 juni 2018, Werkgroep.

Eerste Toets Concurrency 20 december 2018, , Educ-β.

Eerste Huiswerk Algoritmiek 18 februari 2015, uitwisselen, WerkCollege.

Combinatoriek groep 1

Examen Datastructuren en Algoritmen II

Tweede Toets Datastructuren 28 juni 2017, , Educ-β.

Formeel Denken 2013 Uitwerkingen Tentamen

Zesde college complexiteit. 19 maart Mergesort, Ondergrens sorteren Quicksort, Shellsort

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Zevende college Algoritmiek. 6 april Verdeel en Heers

Zevende college algoritmiek. 24 maart Verdeel en Heers

Tweede Toets Concurrency 2 februari 2017, , Educ-β.

Zevende college algoritmiek. 23/24 maart Verdeel en Heers

1 Recurrente betrekkingen

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II

Enkele valkuilen om te vermijden

1 Kettingbreuken van rationale getallen

1.1 Rekenen met letters [1]

Aanvulling aansluitingscursus wiskunde. A.C.M. Ran

Stoomcursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO ( ) = = ( ) ( ) ( ) = ( ) ( ) = ( ) = = ( )

Bewijs door inductie

Formeel Denken 2014 Uitwerkingen Tentamen

Oplossing van opgave 6 en van de kerstbonusopgave.

Opgaven Binair Zoeken en Invarianten Datastructuren, 28 april 2017, Werkgroep.

Geldwisselprobleem van Frobenius

META-kaart vwo3 - domein Getallen en variabelen

Uitgebreide uitwerking Tentamen Complexiteit, juni 2018

Eerste deeltoets Algoritmiek 4 maart 2015, , Educ-β.

Opgaven Zoekbomen Datastructuren, 15 juni 2016, Werkgroep.

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46

Uitwerking Puzzel 93-1, Doelloos

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.

Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep.

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s.

PARADOXEN 1 Dr. Luc Gheysens

Opgaven Lineair Sorteren Datastructuren, 15 mei 2019, Werkgroep.

Mededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte

Oefentoets uitwerkingen

5 Afronden en afkappen

6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen:

IMO-selectietoets III zaterdag 4 juni 2016

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Examen Datastructuren en Algoritmen II

6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen:

ANTWOORDEN blz. 1. d = 1013; = ; = ; =

Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785)

8. Complexiteit van algoritmen:

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

Opgaven Fibonacci-getallen Datastructuren, 23 juni 2017, Werkgroep.

Aanvulling basiscursus wiskunde. A.C.M. Ran

2.1 Bewerkingen [1] Video Geschiedenis van het rekenen ( 15 x 3 = 45

Derde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte

Volledige inductie. Hoofdstuk 7. Van een deelverzameling V van de verzameling N van alle natuurlijke getallen veronderstellen.

Examen G0U13 - Bewijzen en Redeneren,

Genererende Functies K. P. Hart

Tussentoets Analyse 2. Natuur- en sterrenkunde.

Combinatoriek groep 1 & 2: Recursie

Uitwerkingen tentamen Algebra 3 8 juni 2017, 14:00 17:00

Een combinatorische oplossing voor vraag 10 van de LIMO 2010

Getaltheorie I. c = c 1 = 1 c (1)

Examen G0U13 Bewijzen en Redeneren Bachelor 1ste fase Wiskunde. vrijdag 31 januari 2014, 8:30 12:30. Auditorium L.00.07

In Katern 2 hebben we de volgende rekenregel bewezen, als onderdeel van rekenregel 4:

Caleidoscoop: Logica

2 Recurrente betrekkingen

Examen Datastructuren en Algoritmen II

Programmeermethoden NA. Week 6: Lijsten

Wiskunde - MBO Niveau 4. Eerste- en tweedegraads verbanden

7 De getallenlijn = -1 = Nee = 0 = = = 7 -7 C. -2 a 1 b 4 = a b -77 = -10

Oefening 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.

Tentamentips. Tomas Klos. 14 december 2010

Transcriptie:

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 interpreteert en beantwoord de vraag zoals je hem begrijpt. Cijfer: Vraag 4 is 2pt en elke andere vraag is 3pt. Maak vraag en 2 op de voorkant, vraag 3 en 4 op pagina 2 en vraag 5 op pagina 3. Te behalen 4pt, T is som plus gedeeld door,4 (max 0).. Volledige inductie: Bewijs een van deze twee stellingen met inductie: (a) voor elke n 0 geldt n 3k = 2n(n ); (b) voor elke n 0 geldt n 4k = 2n(n + ). Gebruik inductie voor het bewijs! Oplossing: Eerst even de tanden zetten in het kiezen: Stelling (a) is niet waar en die kun je dus ook niet bewijzen. Een inductiebewijs voor stelling (b): Voor n = 0 is de LHS (eenpuntsregel) 0, en de RHS (0 invullen voor n) ook 0, dus geldt gelijkheid. Voor n > 0 gebruiken we de InductieHypothese: n af te leiden: n 4k = 2n(n + ): 4k = 2(n )(n) om dit bewijsdoel n 4k = n 4k + 4n Afsplitsen (voorbereiden IH) = 2(n )(n) + 4n Toepassen IH = (2(n ) + 4)n Termen met gelijke factor samenvoegen = 2(n + )n Beoordeling/Toelichting: Voor een compleet en goedlopend bewijs 3pt. Codes: A = Allebei de stellingen bewezen? Dat pleit niet voor de soundness van je bewijskunsten, pt eraf (als je bewijs goed hebt). B = Benoem de InductieHypothese en het bewijsdoel expliciet. D = Dat (b) voor n = 0 klopt, is niet om de Lege-Somregel, maar om de Eenpuntsregel. E = In Eèn richting van LHS naar RHS kan lastig zijn, sommigen herleidden beide naar 2n 2 + 6n + 4, mag ook. F = Foute stap in afleiding, puntenaftrek naar ernst. I = Je moet zeggen waar je de IH gebruikt, anders /2 eraf. L = Loopt vast in het bewijs van (a), zo hoort het. Als je duidelijk beseft dat het geen sluitend bewijs is, kunnen er punten worden gegeven voor correcte delen zoals basisstap. M = Keuze voor (b) hoef je niet te Motiveren. N = Voor n = 0, laat zien hoe je LHS en RHS uitwerkt. P = Bewijzen van P (n + ) uit P (n) mag natuurlijk ook, de meesten deden dit, hierboven staat P (n) uit P (n ). Q = De IH of Tb in de inductiestap is niet gequantificeerd! R = Rekenregel A(E+L)/2 geeft het antwoord ook, maar het moest met Inductie. S = Schrijf nooit n = n + :, maar beter Geval n + :. T = Niet alleen formules opschrijven, een beetje Tekst hoort er ook bij.

U = U-bewijs met triviale conclusie 0 = 0 of 2n 2 +6n+4 = 2n 2 +6n+4. Niet goed, bewijs nooit een triviale waarheid vanuit je bewijsdoel, maar leid je bewijsdoel af uit gegevens. V = Je hebt de Verkeerde stelling bewezen, geen punt. 2. Ordes en O: Zijn deze beweringen WAAR of ONWAAR? (a) O(n 2 ) Θ(n) = O(n 3 ). (b) 3 n/2 = O(2 n ). (c) 3 n = Θ(2 n ). (d) f(n) = O(g(n)) impliceert g(n) = Ω(f(n)). (e) 2 n + 3 log n = O(log n). (f) O(lg(n 2 )) = O(lg n). (g) O(n) + O(n 2 ) = O(n 3 ). (h) O(n 2 ) + O(n 2 ) = Θ(n 2 ). (i) O(lg n) = O( 0 log n). (j) (n + 5) 3 = O(n 3 ). (Geef duidelijk aan over welke bewering je het hebt.) Oplossing: (a) WAAR want de O is multiplicatief; maximaal kwadratisch keer precies lineair is inderdaad maximaal kubisch. (b) WAAR, 3 n/2 is namelijk 3 n, en omdat sqrt3 < 2 is dit van strikt kleinere orde. (c) ONWAAR, 3 n is echt van een strikt hogere orde dan 2 n, dus wel Ω(2 n ) maar niet Θ(2 n ). (d) WAAR, het boek vermeldt dit op p52 als Transpose Symmetry. (e) ONWAAR, de wortel is polynomiaal (macht /2) en domineert, je zou moeten zeggen het is O( n). (f) WAAR want lg(n 2 ) is 2 lg n dus begrensd door een veelvoud van lg n. (g) WAAR want lineair plus kwadratisch is kwadratisch, dus ook hoogstens kubisch (denk aan de die in de O verstopt zit). (h) ONWAAR, want twee termen die elk begrensd zijn door iets kwadratisch, kun wel in feite kleiner zijn, bv. lineair, dan is hun som ook lineair en dat is wel begrensd door maar niet gelijk aan kwadratisch. (i) WAAR want lg n = lg 0 0 log n dus begrensd door een veelvoud ervan. (j) WAAR, (Boek Ex 3.-2), want voor n > 5 is n + 5 minder dan 2n dus (n + 5) 3 < 8n 3. Beoordeling/Toelichting: Tot 3pt, /2 per goed antwoord vanaf het vijfde (dus 4 goed is 0pt, 5 goed is /2pt, 6 goed is pt, etc). G = In een redenering zul je liever scherper afschatten O(n) + O(n 2 ) = O(n 2 ), maar daarmee is dit nog niet fout. T = Toelichting hoeft er niet bij, binair antwoord is genoeg.

3. Sommaties: Geef de uitkomst van (a) n i=0 (2i + 3) (b) n j=0 3j j (c) n 2k Oplossing: (a) Een Rekenkundige reeks met Eerste term 3, Laatste term (2n+3), Aantal termen n +, dus uitkomst (n + )(2n + 6) ofwel (n + )(n + 3) of 2 n2 + 4n + 3. (b) Niet zuiver Rekenkundig of Meetkundig, dus splitsen in n j=0 3j n j=0 j geeft 2 (3n+ ) n(n + ). 2 (c) Tikkeltje lastig tot je beseft dat de eerste n oneven getallen niets anders zijn dan de eerste 2n getallen zonder de eerste n even getallen: n = 2n 2k = 2n = H 2n H 2 n 2k n k n k 2 k Domeinsplitsing Const. Factor Beoordeling/Toelichting: Per goed antwoord een punt; geen halve punten voor goedbedoelde pogingen. De eerste is een rechttoe rechtaan rekenkundige som, iedereen hoort die goed te hebben en de meerderheid had dat ook. De tweede een combinatie van meetkundig en rekenkundig, die je wel eerst even moet termsplitsen voordat je de vuistregeltjes kunt toepassen. Dus iets lastiger en wat minder deelnemers hadden die goed. De derde vraagt iets meer inzicht maar soortgelijke zijn wel eerder op Werkcollege geweest. Je hoeft je niet te schamen als je (c) niet had, al is dat extra puntje natuurlijk altijd mooi meegenomen! A = Aantal termen bij (a) is n +, bij (b) ook. G = Uitkomst is een Gesloten formule, dus zonder erin. M = Macht 3 n+ is niet hetzelfde als 3(n + ). N = Termsplitsen is niet Nodig bij (a), en elke extra stap geeft kans op rekenfouten. R = Minieme Rekenfout in vereenvoudiging soms slechts /2 aftrek. S = Sommatievariabele ontsnapt uit som! Antwoord heeft geen i, j of k meer!

4. Sorteren van bijna-goede rij: Je moet een array A sorteren, waarvan de elementen verschillend zijn en al bijna op de goede plek staan: voor elke i is de rang van A[i] (dat is: het aantal elementen kleiner dan A[i]) minstens i 3 en hoogstens i + 3. (a) Kun je InsertionSort zo aanpassen dat A in lineaire tijd wordt gesorteerd? (b) Kun je SelectionSort zo aanpassen dat A in lineaire tijd wordt gesorteerd? Zeg bij elk ook hoe of waarom niet. Oplossing: (a) JA, en zonder iets te doen want InsertionSort heeft al voordeel van presortedness in on-aangepaste versie. Elk element dat wordt ingevoegd in het gesorteerde deel, hoeft hoogstens drie plaatsen op te schuiven en dan stopt het invoegen vanzelf. (b) JA, maar je moet wel een aanpassing maken waardoor steeds het minimum uit het ongesorteerde deel alleen wordt gezocht onder de eerste vier elementen daarvan. Verder weg kan het niet staan. Beoordeling/Toelichting: Per deelvraag pt. Van IS (a) is het een bekende eigenschap, voor (b) is het belangrijk in te zien dat er een wijziging nodig is. A = De vraag gaat over mogelijke Aanpassing van het algoritme, dus niet over het gedrag van het standaard algoritme in de beschreven situatie. B = Toepassen op Blokken van lengte 7 (of zelfs, zie V) is niet goed! Weliswaar weet je van het middelste element van zo n blok dat het op de goede plek komt, maar de andere elementen moeten mogelijk worden uitgewisseld met een naburig blok. H = Wanneer mag een aangepast algoritme nog Insertion of Selection Sort Heten? Insertion (resp. Selection) Sort kenmerkt zich door de invariant dat de eerste i plekken, de eerste i waarden van de invoer (resp. uitvoer) bevatten in oplopende volgorde. M = Motivatie Moest erbij, al is t maar een beetje. R = De Rang van element x is de plek waar x moet komen bij sortering. Het gegeven zegt dus, dat elk element hoogstens drie posities van de gewenste vandaan staat. V = Een element kleiner dan A[i] kan nog op plek A[i + 5] staan. Bv het derde element mag volgens het gegeven op positie 0 staan, terwijl het tweede nog op positie 5 mag.

5. Onderkant: Gegeven is een ongesorteerde array A van n > 3 verschillende integers. Je moet een onderkant-getal opleveren, dat is een getal dat tot de kleinste n getallen behoort. 2 (a) Geef een of twee nadelen van deze oplossing: A.Sort(); return A[];. (b) Geef een methode int onder(int[] A) die zo weinig mogelijk vergelijkingen doet en een onderkant-getal oplevert. Oplossing: (a) De array (volgorde) wordt veranderd en het is ook duur, Θ(n lg n) tijd. (b) De kleinste waarde van de eerste (n + 3)/2 heeft (n + )/2 getallen boven zich en is dus zeker een onderkant: int onder(int [] A) { int s = A[0], h = (A.Length+3)/2; for (int i=; i < h; i++) if (A[i] < s) s = A[i]; return s; } Beoordeling/Toelichting: Voor (a) pt en bij (b) voor een duidelijke korte uitwerking die niet veel meer dan n 2 vergelijkingen doet, 2pt. A = Bekijkt Alle elementen, max,5pt. C = De Conditie wordt elke loop-iteratie uitgevoerd, dus het bovenstaande is beter dan for (int i=; i < (A.Length+3)/2; i++). F = Fout algoritme, 0pt. G = Een Getal kleiner dan het Gemiddelde is niet zeker een onderkent. Een getal kleiner dan n/2 ook niet, en 0 evenmin. H = Methode met Hoge complexiteit, superlineair, 0pt. Bv het sorteren van de halve array, dit kost ook Ω(n lg n). L = Lineaire methode, bekijkt elk element gemiddeld meer dan eens, pt. P = Array.Sort is in Place (waarschijnlijk, want gebruikt IS, QS of HS). S = InStabiliteit van sorteren is geen nadeel omdat gegeven is dat alle getallen verschillend zijn. V = Sort doet Θ(n lg n) Vergelijkingen en Min (of Max) Θ(n). W = Je bekijkt te Weinig elementen. Met minder dan n/2 + bekijken kan het niet, dus binair zoeken is sowieso niet goed.