Algoritmiek. 2 februari Introductie
|
|
|
- Laura van den Berg
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 College 1 Algoritmiek 2 februari 2017 Introductie 1
2 Introductie -1- docent: Rudy van Vliet assistent werkcollege: Bart van Strien website: college: donderdag 11: werkcollege: donderdag 13:45 15:30...: donderdag 15:45 2
3 Introductie -2- tentamen: dinsdag 6 juni 2017, hertentamen: maandag 10 juli 2017,
4 Literatuur Bij dit college behorende boek: Anany Levitin Introduction to The Design and Analysis of Algorithms third edition Addison-Wesley,
5 Programmeerwerk drie programmeeropdrachten in C ++ nadruk op toepassen van besproken probleemoplossingsmethoden bij voorkeur in tweetallen alle drie voldoende ( 5.5) if (tentamen gehaald) if (programmeerwerk in orde) eindcijfer = 2 3 tentamencijfer +1 3 practicumcijfer; else (nog) geen eindcijfer; else eindcijfer = tentamencijfer; 5
6 Algoritme Een algoritme is een opeenvolging van ondubbelzinnig omschreven instructies die leiden tot een oplossing van een probleem. Het algoritme geeft voor elke willekeurige legale invoer van het probleem de vereiste uitvoer in een eindig aantal stappen (in eindige tijd). In de praktijk willen we dat een algoritme effectief is, dat wil zeggen binnen redelijke tijd klaar is, en liefst zo snel mogelijk (efficiëntie): complexiteit van een algoritme. Het woord algoritme is afgeleid van Abu Ja far Muhammed ibn Musa al-khwarizmi (ca ), een belangrijk Arabisch wiskundige uit de middeleeuwen. 6
7 al-khwarizmi 7
8 Wat is een algoritme? Een algoritme is een recept, methode,... voor het oplossen van een probleem, met de volgende eigenschappen: 1. eindigheid: stopt na een eindig aantal stappen 2. bepaaldheid: bestaat uit ondubbelzinnig omschreven stappen 3. invoer: het is duidelijk wat geldige invoer is 4. uitvoer: er kan bewezen worden dat de correcte uitvoer wordt gegeven voor elke geldige invoer 5. effectiviteit: de stappen zijn voldoende eenvoudig en het antwoord wordt binnen redelijke tijd gegeven 8
9 probleem programma probleem (specificatie) ontwerp algoritme (pseudocode) implementatie programma (C++) 9
10 Algoritmiek en verder ontwerpen van algoritmen: Algoritmiek, Datastructuren hoe beschrijven we het algoritme? correctheid bewijzen: Programmeren & correctheid analyse van algoritmen: Complexiteit - efficiëntie. theoretische analyse: tijdcomplexiteit, ruimtecomplexiteit. empirische analyse: testen - optimaliteit: bestaat er een beter algoritme? 10
11 Algoritme-ontwerp In dit college bekijken we enkele belangrijke ontwerptechnieken voor het algoritmisch oplossen van problemen: * brute force/exhaustive search * divide and conquer * backtracking * branch and bound * dynamic programming * greedy approach 11
12 ggd(m,n) Probleem: Gegeven twee niet-negatieve gehele getallen m en n (niet beide nul). Vraag: wat is de grootste gemeenschappelijke deler, genoteerd als ggd(m,n), van m en n? Voorbeeld: ggd(60,24) = 12; ggd(25,0) = 25; ggd(200, 441) = 1; ggd(588,495) = 3. 12
13 ggd(m,n) Probleem: Gegeven twee niet-negatieve gehele getallen m en n (niet beide nul). Vraag: wat is de grootste gemeenschappelijke deler, genoteerd als ggd(m,n), van m en n? Voorbeeld: ggd(60,24) = 12; ggd(25,0) = 25; ggd(200, 441) = 1; ggd(588,495) = 3. Het algoritme van Euclides is gebaseerd op het herhaald gebruiken van de gelijkheid ggd(m,n) = ggd(n,m mod n), totdat de tweede parameter nul wordt. Voorbeeld: ggd(60,24) = ggd(24, 12) = ggd(12, 0) = 12 13
14 Euclides Euclides van Alexandrië (ca (voor Christus)) Prominent wiskundige uit de oudheid, vooral bekend vanwege zijn verhandeling over meetkunde: De Elementen. 14
15 Algoritme van Euclides Het algoritme van Euclides in pseudocode (anders dan die in het boek wordt gebruikt): while n 0 do // elementaire operaties: deling en toekenning rest := m mod n; m := n; n := rest; od return m; Zie ook dictaat en college Programmeermethoden. Er zijn nog andere algoritmen voor het berekenen van de ggd van twee getallen. We bekijken er twee. Welke van de drie is het efficiëntst? 15
16 ggd-algoritme 2 Het volgende algoritme (genoteerd in gewone taal) berekent ggd(m,n) door van alle integers min(m,n) te proberen of ze m en n beide delen. Algoritme 2: Stap 1 Bepaal min(m,n) en ken de waarde toe aan t; Stap 2 Deel m door t. Als de rest 0 is, ga naar Stap 3; anders ga naar Stap 4; Stap 3 Deel n door t. Als de rest 0 is, dan is t de ggd, dus return t en stop; anders ga naar Stap 4; Stap 4 Laag t met 1 af en ga naar Stap 2; Merk op dat in tegenstelling tot het algoritme van Euclides dit algoritme fout gaat als m of n nul is. Er moet hier dus gelden: m 0 en n 0. 16
17 ggd-methode 3 Onderstaande methode vindt de ggd door m en n te ontbinden in hun priemfactoren. De ggd is dan het product van de gezamenlijke priemfactoren. Voorbeeld: 60 = en 24 = 2 3 3, dus ggd(60,24) = = 12. Stap 1 Vind de priemontbinding van m; Stap 2 Vind de priemontbinding van n; Stap 3 Vind alle gemeenschappelijke priemfactoren; Stap 4 Bereken het product van de gemeenschappelijke priemfactoren en return deze waarde; Vraag: vinden we dit eigenlijk wel een algoritme? 17
18 Bekende problemen Andere bekende problemen die goed algoritmisch (al dan niet efficiënt) aan te pakken zijn: sorteren zoeken kortste pad in een graaf handelsreizigersprobleem vierkleurenprobleem convex hull probleem stabiele huwelijken vier-op-een-rij, schaken, go,...(?) dames op schaakbord torens van Hanoi en vele andere 18
19 En hoe zit het met... Puzzel 1: a. Kun je een 8 bij 8 (schaak)bord geheel volleggen met dominostenen? (En zo ja, op hoeveel manieren?) b. Idem voor een 7 bij 7 bord c. Idem voor een 8 bij 8 bord waarbij de velden linksboven en rechtsonder zijn weggelaten d. Idem voor een 8 bij 8 schaakbord waarbij één wit veld en één zwart veld zijn weggelaten 19
20 Schaakbord Een dominosteen bedekt precies twee vakjes van het schaakbord. De ogen op de steen zijn voor dit probleem niet relevant. Dit geldt ook (meestal) voor de kleur van de velden van het bord. 20
21 En met... 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) en verschillende letters corresponderen met verschillende cijfers. Het cijfer 0 komt niet voor als meest linkse cijfer in een getal. (Dus i.h.b. is D 0, G 0 en R 0.) Om het makkelijker te maken is gegeven dat D = 5. Vergelijk ook Levitin, hoofdstuk 3.4, opgave
22 Optelpuzzel c 1 c 2 c 3 c 4 c 5 5 O N A L 5 G E R A L 5 + R O B E R T Hierin is c i de overdracht, dus c i = 0 of 1 (i = 1,...5) 1. Uit kolom 6: T = 0 en c 5 = Uit kolom 5: 1 + 2L = R + 10 c 4 R oneven. 3. Uit kolom 1: c G = R R 5 + G > 5, dus R = 7 of R = Uit kolom 2: c 2 + O + E = O + 10 c 1 c 2 + E = 10 c 1. Als c 1 = 0, dan (c 2 en) E = 0, maar we hadden al T = 0. Gevolg: c 1 = 1, E = 9, c 2 = 1 en R = Doe de rest zelf. 22
23 En met... Puzzel 3: The Monkey puzzle 23
24 Aapjes Monkey puzzle: leg de 9 stukken zo in een vierkant dat op alle aangrenzende stukken boven- en onderkant van aapjes van dezelfde kleur precies aansluiten. Het is eenvoudig in te zien dat de puzzel van de vorige sheet opgelost kan worden. Dit is echter niet altijd het geval: het al dan niet oplosbaar zijn hangt van de stukken af. Stel bijvoorbeeld dat we 9 dezelfde stukken hebben: puzzel kan opgelost worden puzzel kan niet opgelost worden 24
25 Datastructuren We bekijken de volgende fundamentele datastructuren: lineaire lijsten stapels en rijen priority queues grafen bomen Zie ook: Programmeermethoden. 25
26 Lijsten Een lineaire lijst is een lineair geordende, eindige collectie gegevens van hetzelfde type. Implementatie: array pointers - enkelverbonden lijst - dubbelverbonden lijst Speciale lijsten: stapel rij priority queue 26
27 Implementatie lijst - array n 1 - enkelverbonden lijst null - dubbelverbonden lijst null null 27
28 Grafen Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van paren van knopen: de takken/pijlen (edges). Een tak/pijl (u, v) verbindt de knopen u en v met elkaar. Terminologie: - ongerichte/gerichte graaf - gewogen graaf - paden en cykels - samenhangend - acyclisch 28
29 Grafen: voorbeelden V = {0,1,2,3,4,5}; E = {(0,1),(1,2),(2,3),(3,4),(4,5),(5,0),(4,1)} V = {0,1,2,3,4,5}; E = {(0,1),(2,1),(2,3),(4,3),(5,4),(5,0),(4,1),(1,4)} V = {0,1,2,3}; E = {(0,1),(1,2),(2,3),(0,3),(1,3)} 29
30 Representaties Adjacency matrix: de ongerichte graaf wordt gerepresenteerd door een tweedimensionaal array int graaf[n][n] (n het aantal knopen), waarbij graaf[i][j] aangeeft of er een tak tussen i en j zit. Adjacency list: de ongerichte graaf wordt gerepresenteerd door een eendimensionaal array buur* graaf[n] (n het aantal knopen), waarbij graaf[i] de ingang is tot een lijst van buren van knoop i. Adjacency list representatie in C ++ : struct buur { int knoopnummer; buur* volgende; } buur* graaf[n]; 30
31 Ongericht Adjacency matrix en adjacency list voor voorbeeldgraaf 1: adjacency matrix Λ Λ Λ Λ 4 5 Λ Λ adjacency list 31
32 Gericht Adjacency matrix en adjacency list voor voorbeeldgraaf 2: adjacency matrix Λ Λ Λ Λ Λ Λ adjacency list 32
33 Werkcollege Lezen/leren bij dit college: Paragrafen 1.1, 1.2, 1.4 (t/m graafrepresentaties) Werkcollege: donderdag 2 februari 2017, 13:45 15:30, zaal 264 Opgaven: zie Volgend college: donderdag 9 februari 2017, , zaal
Tweede college algoritmiek. 12 februari Grafen en bomen
College 2 Tweede college algoritmiek 12 februari 2016 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices)
Algoritmiek. 15 februari Grafen en bomen
Algoritmiek 15 februari 2019 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van
Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra
Algoritmiek 017/Gretige Algoritmen Tiende college algoritmiek 13/1 april 017 Gretige Algoritmen Algoritme van Dijkstra 1 Algoritmiek 017/Gretige Algoritmen Muntenprobleem Gegeven onbeperkt veel munten
Tiende college algoritmiek. 26 april Gretige algoritmen
Algoritmiek 01/10 College 10 Tiende college algoritmiek april 01 Gretige algoritmen 1 Algoritmiek 01/10 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag
Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra
College 10 Tiende college algoritmiek mei 013 Gretige algoritmen, Dijkstra 1 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag van n (n 0) eurocent. Alle
Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search
Algoritmiek 2018/Toestand-actie-ruimte Vierde college algoritmiek 2 maart 2018 Toestand-actie-ruimte Exhaustive Search 1 Algoritmiek 2018/Toestand-actie-ruimte Kannen Voorbeeld 4: Kannenprobleem We hebben
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
Vierde 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
ALGORITMIEK: 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
ALGORITMIEK: 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
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)
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
Doorzoeken van grafen. Algoritmiek
Doorzoeken van grafen Algoritmiek Vandaag Methoden om door grafen te wandelen Depth First Search Breadth First Search Gerichte Acyclische Grafen en topologische sorteringen 2 Doolhof start eind 3 Depth
Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.
Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee
V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.
WIS14 1 14 Grafen 14.1 Grafen Gerichte grafen Voor een verzameling V is een binaire relatie op V een verzameling geordende paren van elementen van V. Voorbeeld: een binaire relatie op N is de relatie KleinerDan,
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
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
Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound
Algoritmiek 011/11 College 11 Elfde college algoritmiek 1 april 011 Dijkstra en Branch & Bound 1 Algoritmiek 011/11 Kortste paden Gegeven een graaf G met gewichten op de takken, en een beginknoop s. We
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,
Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS
Algoritmiek 2016/Dynamisch Programmeren Tiende college algoritmiek 14 april 2016 Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS 1 Algoritmiek 2016/Dynamisch Programmeren Houtzaagmolen
Datastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 2 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Organisatie Website Vakwebsite: http://www.cs.uu.nl/docs/vakken/ki2v12009/ Bevat alle
Kortste Paden. Algoritmiek
Kortste Paden Toepassingen Kevin Bacon getal Six degrees of separation Heeft een netwerk de small-world eigenschap? TomTom / Google Maps 2 Kortste paden Gerichte graaf G=(N,A), en een lengte L(v,w) voor
Derde college algoritmiek. 18 februari Toestand-actie-ruimte
Derde college algoritmiek 18 februari 2016 Toestand-actie-ruimte 1 BZboom: zoeken Na het bomenpracticum 60 20 80 10 40 70 100 1 15 30 75 5 25 35 2 BZboom: verwijderen 60 20 80 10 40 70 100 1 15 30 75 5
(On)Doenlijke problemen
Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke
Programmeermethoden. Pointers. Walter Kosters. week 10: november kosterswa/pm/
Programmeermethoden Pointers Walter Kosters week 10: 13 17 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Introductie Een pointer is in feite gewoon een geheugenadres. Het geheugen kun
Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University
Discrete Wiskunde, College 12 Han Hoogeveen, Utrecht University Dynamische programmering Het basisidee is dat je het probleem stap voor stap oplost Het probleem moet voldoen aan het optimaliteitsprincipe
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:
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
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
10 Meer over functies
10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf
Grafen en netwerken I Datastructuren en doorzoeken. Algoritmiek
Grafen en netwerken I Datastructuren en doorzoeken Algoritmiek 1 Inleiding 2 Netwerken Veel toepassingen, bijvoorbeeld: Sociale netwerken, electrische netwerken, wegennetwerken, communicatie netwerken,
Uitwerking tentamen Algoritmiek 10 juni :00 13:00
Uitwerking tentamen Algoritmiek 10 juni 2014 10:00 13:00 1. Dominono s a. Toestanden: n x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal X gelijk aan het aantal O of hooguit één hoger.
Uitwerking tentamen Algoritmiek 9 juli :00 13:00
Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel
Derde college algoritmiek. 16/17 februari Toestand-actie-ruimte
Derde college algoritmiek 16/17 februari 2017 Toestand-actie-ruimte 1 Toestand-actie-ruimte Probleem Toestand-actie-ruimte Een toestand-actie-ruimte (toestand-actie-diagram, state transition diagram, toestandsruimte,
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,
Algoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen
Universiteit Twente 2009-2010/2 Afdeling Informatica, Faculteit EWI Tentamen dinsdag 19 januari 2010, 8.45-12.15 Algoritmen, Datastructuren en Complexiteit (214020 en 214025) Uitwerkingen Bij dit tentamen
Derde college algoritmiek. 23 februari Toestand-actie-ruimte
College 3 Derde college algoritmiek 23 februari 2012 Toestand-actie-ruimte 1 BZboom: verwijderen 60 20 80 10 40 70 100 1 15 30 75 5 25 35 100 verwijderen = 60 20 80 10 40 70 1 15 30 75 5 25 35 verwijderen
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
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
Het Eindfeest. Algoritmiek Opgave 6, Voorjaar
1 Achtergrond Het Eindfeest Algoritmiek Opgave 6, Voorjaar 2017 1 Om het (successvol) afsluiten van Algoritmiek te vieren, is er een groot feest georganiseerd. Jij beschikt als enige van je vrienden over
Negende college algoritmiek. 15 april Dynamisch Programmeren
Negende college algoritmiek 15 april 2016 Dynamisch Programmeren 1 algemeen Uit college 8: DP: - nuttig bij problemen met overlappende deelproblemen - druk een oplossing van het probleem uit in oplossingen
Geldwisselprobleem van Frobenius
Geldwisselprobleem van Frobenius Karin van de Meeberg en Dieuwertje Ewalts 12 december 2001 1 Inhoudsopgave 1 Inleiding 3 2 Afspraken 3 3 Is er wel zo n g? 3 4 Eén waarde 4 5 Twee waarden 4 6 Lampenalgoritme
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
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
CTB1002 deel 1 - Lineaire algebra 1
CTB1002 deel 1 - Lineaire algebra 1 College 1 11 februari 2014 1 Even voorstellen Theresia van Essen Docent bij Technische Wiskunde Aanwezig op maandag en donderdag EWI 04.130 [email protected] Slides
Het omzetten van reguliere expressies naar eindige automaten, zie de vakken Fundamentele Informatica 1 en 2.
Datastructuren 2016 Programmeeropdracht 3: Patroonherkenning Deadlines. Woensdag 23 november 23:59, resp. vrijdag 9 december 23:59. Inleiding. Deze opdracht is gebaseerd op Hoofdstuk 13.1.7 in het boek
Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur
Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, 10.00 13.00 uur Opgave 1. a. Een toestand wordt bepaald door: het aantal lucifers op tafel, het aantal lucifers in het bezit van Romeo,
Getaltheorie I. c = c 1 = 1 c (1)
Lesbrief 1 Getaltheorie I De getaltheorie houdt zich bezig met het onderzoek van eigenschappen van gehele getallen, en meer in het bijzonder, van natuurlijke getallen. In de getaltheorie is het gebruikelijk
definities recursieve datastructuren college 13 plaatjes soorten Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten
recursieve datastructuren college graphs definities Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten E edges, arcs, kanten, pijlen, lijnen verbinding tussen knopen Voorbeelden steden en verbindingswegen
De huwelijksstelling van Hall
Thema Discrete wiskunde In de vorige twee afleveringen heb je al kennis kunnen maken met het begrip graaf en hoe grafen worden gebruikt door Google s zoekmachine en door de NS bij het maken van een optimale
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.
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
DomJudge-Practicum. Open Dag UU
1 Introductie DomJudge-Practicum Open Dag UU Bij veel vakken die je volgt tijdens je studie informatica aan de UU, moet je programmeeropdrachten maken. Soms moet je die inleveren zodat ze door de docent
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:
Stacks and queues. Hoofdstuk 6
Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked
1 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
2 Recurrente betrekkingen
WIS2 1 2 Recurrente betrekkingen 2.1 Fibonacci De getallen van Fibonacci Fibonacci (= Leonardo van Pisa), 1202: Bereken het aantal paren konijnen na één jaar, als 1. er na 1 maand 1 paar pasgeboren konijnen
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
Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms
Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie
3. Structuren in de taal
3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
Programmeren 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
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
