Derde college complexiteit. 7 februari Zoeken

Save this PDF as:
 WORD  PNG  TXT  JPG

Maat: px
Weergave met pagina beginnen:

Download "Derde college complexiteit. 7 februari Zoeken"

Transcriptie

1 College 3 Derde college complexiteit 7 februari 2017 Recurrente Betrekkingen Zoeken 1

2 Recurrente betrekkingen -1- Rij van Fibonacci: 0,1,1,2,3,5,8,13,21,... Vanaf het derde element: som van de voorgaande twee Een recurrente betrekking is een voorschrift om een waarde T(n) te berekenen door middel van zijn voorganger(s), dus bijvoorbeeld T(n 1), of T( n 2 ), of... Voor de Fibonacci-getallen geldt: T(n) = 0 n = 0 1 n = 1 T(n 1)+T(n 2) n > 1 2

3 Recurrente betrekkingen -2- Een ander voorbeeld van een recurrente betrekking: T(n) = { 1 n = 1 2T( n 2 )+n n = 2k > 1 Strategie: herhaalde substitutie en afleiden algemene vorm, of: Probeer wat termen door te rekenen: zie je een patroon? Bewijs de formule met volledige inductie Oplossing: T(n) = n+nlgn Θ(nlgn) 3

4 Recurrente betrekkingen -3- De vorige recurrente betrekking, maar nu voor algemenere n, dus niet alleen voor tweemachten: T(n) = { 1 n = 1 2T( n 2 )+n n > 1 Dan geldt: T(n) O(nlgn) (en overigens ook T(n) Θ(nlgn)). Dit kan bewezen worden door met behulp van volledige inductie bijvoorbeeld aan te tonen dat T(n) 2nlgn voor alle n 2. 4

5 Recurrente betrekkingen -4- En ten slotte nog twee voorbeelden om op te lossen. (i) T(n) = { 3 n = 1 T(n 1)+n 1 n > 1 Oplossing: T(n) = n(n 1) (ii) T(n) = { 0 n = 1 2T( n 4 )+ n n = 4 k > 1 Oplossing: T(n) = nlog 4 n = 1 2 nlgn 5

6 Verder vandaag We bekijken een aantal zoekalgoritmen, waarvan we de complexiteit vergelijken. Met behulp van beslissingsbomen bewijzen we later een ondergrens op de complexiteit. Zoeken met behulp van sleutelvergelijkingen Zoekalgoritmen: Ongeordend Lineair zoeken (opgave 3) Geordend Lineair zoeken (opgave 4) Jump Search Binair Zoeken (opgave 5) 6

7 Zoeken Probleem Gegeven een waarde X en een array A, bestaande uit n elementen A[1],...,A[n]. Bepaal of X in A zit. Zo ja, geef de index terug, zo nee, geef -1 terug. We maken gebruik van sleutelvergelijkingen van de vorm: of if (X = A[i]) then // binaire vergelijking gevonden; else...; if (X = A[i]) then // drie-weg vergelijking gevonden; else if (X < A[i]) then...; else...; 7

8 Sleutelvergelijking Een sleutelvergelijking doet voor iedere aanroep maximaal twee ja/nee vergelijkingen Kost dus Θ(1) tijd per aanroep De drie-weg vergelijking kost in orde van grootte evenveel tijd als de vergelijking (X = A[i]) We tellen beide soorten sleutelvergelijkingen dan ook als één vergelijking 8

9 Ongeordend lineair zoeken Probleem Zoek X in een willekeurig array A = A[1],...,A[n]. Complexiteit van het probleem (opgave 3.e.) Elk algoritme dat een waarde X zoekt in een (willekeurig) array A met n elementen, en dat alleen gebruik maakt van sleutelvergelijkingen (X =,< A[i]), doet in de worst case ten minste n vergelijkingen. Algoritme en complexiteit Lineair zoeken doet in de worst case n vergelijkingen, en is dus optimaal. In het bewijs wordt expliciet gebruikt dat je geen informatie hebt over de invoer, behalve wat je uit de sleutelvergelijkingen leert. 9

10 OLZ: algoritme Algoritme (zie opgave 3): (1) index := 1; (2) while index n and A[index] X do (3) index := index+1; (4) od (5) if index n then (6) return index; (7) else (8) return 1; (9) fi basisoperatie 10

11 OLZ: complexiteit Best case Je kunt al bij de eerste vergelijking prijs hebben: Θ(1) Average case Laat q de kans zijn dat X in A voorkomt Iedere positie in A is even waarschijnlijk Dan worden er in de average case q 1 2 (n+1)+(1 q) n Θ(n) sleutelvergelijkingen gedaan Worst case Als X niet in A zit of helemaal achteraan: Θ(n) 11

12 Geordend lineair zoeken Probleem Zoek X in een oplopend gesorteerd array A, bestaande uit n elementen A[1],...,A[n]. Algoritme: (1) index := 1; (2) while index n and A[index] < X do (3) index := index+1; (4) od (5) if index n and X = A[index] then (6) return index; (7) else (8) return 1; (9) fi basisoperatie 12

13 GLZ: complexiteit De complexiteit van geordend lineair zoeken. Worst case: n sleutelvergelijkingen (Bij welke invoer gebeurt dit? En bij ongeordend zoeken?) Average case: n 2 + n n+1 +q (1 2 n n+1 ) Θ(n 2 ), met q de kans dat X in A voorkomt, en: 1. als X in A: alle n posities in A even waarschijnlijk 2. als X niet in A: alle n+1 gaten even waarschijnlijk zie ook opgave 4 13

14 Jump search A is weer oplopend gesorteerd; kies k met 1 k < n index := k; // index is altijd een k-voud // vergelijk X met A[k],A[2k],A[3k],... while index n and A[index] < X do index := index+k; od if index n // A[index k] < X A[index] lineair zoeken van X in A[index k +1]...A[index]; else // A[index k] < X A[n] lineair zoeken van X in A[index k +1]...A[n]; fi 14

15 JS: complexiteit Worst case: n +k sleutelvergelijkingen k Beste keus: k = n. Dan doet Jump sort in het slechtste geval Θ( n ) sleutelvergelijkingen. Dat is beter dan geordend lineair zoeken. Vraag: kan zoeken in een geordend array nog beter? Antwoord: Ja, namelijk binair zoeken. 15

16 (Werk)college - Volgende college: dinsdag 14 februari, 11:15 13:00, zaal Eerste werkcollege: dinsdag 7 februari, 13:45 15:30, zaal 405, liacs.leidenuniv.nl/ graafjmde/comp/ 16

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie

Vierde 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 informatie

Vierde college complexiteit. 14 februari Beslissingsbomen

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

Nadere informatie

Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument

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

Nadere informatie

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

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

Nadere informatie

Zevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort

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:

Nadere informatie

Tiende college algoritmiek. 26 april Gretige algoritmen

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

Nadere informatie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 22 februari 2009 INDUCTIE & RECURSIE Paragrafen 4.3-4.6 Discrete Structuren Week 3:

Nadere informatie

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

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

Nadere informatie

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

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,

Nadere informatie

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

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,

Nadere informatie

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

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

Nadere informatie

2 Recurrente betrekkingen

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

Nadere informatie

Algoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen

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

Nadere informatie

sheets Programmeren 1 Java college 6, Walter Kosters De sheets zijn gebaseerd op met name hoofdstuk 13 en 14 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS

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

Nadere informatie

1 Recurrente betrekkingen

1 Recurrente betrekkingen WIS1 1 1 Recurrente betrekkingen 1.1 De torens van Hanoi De torens van Hanoi Edouard Lucas, 1884: Gegeven 3 pinnen en 64 schijven van verschillende grootte. Startsituatie: 64 op linkerpin, geordend naar

Nadere informatie

Inleiding Programmeren 2

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

Nadere informatie

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

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

Nadere informatie

Elfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound

Elfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound Algoritmiek 013/11 College 11 Elfde college algoritmiek 1 mei 013 Dijkstra, Gretige algoritmen en Branch & Bound 1 Algoritmiek 013/11 Voorbeeld -1- A B C D E F G H 9 7 5 A B C D E F G H 0 9 9 7 5 A B C

Nadere informatie

Examen Algoritmen en Datastructuren III

Examen Algoritmen en Datastructuren III Derde bachelor Informatica Academiejaar 2006 2007, tweede zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)

Nadere informatie

Negende college algoritmiek. 15 april Dynamisch Programmeren

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

Nadere informatie

Programmeermethoden NA. Week 6: Lijsten

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

Nadere informatie

n-queens Local Search met Conflict Minimalizatie

n-queens Local Search met Conflict Minimalizatie n-queens Local Search met Conflict Minimalizatie Efficient Local Search with Conflict Minimalization: A Case Study of the n-queens Problem, door Rok Sosič en Jun Gu. Sjoerd van Egmond svegmond@liacs.nl

Nadere informatie

Bewijs door inductie

Bewijs door inductie Bewijs door inductie 1 Bewijs door inductie Vaak bestaat een probleem erin aan te tonen dat een bepaalde eigenschap geldt voor elk natuurlijk getal. Als je wilt weten of iets waar is voor alle natuurlijke

Nadere informatie

Combinatoriek groep 1

Combinatoriek groep 1 Combinatoriek groep 1 Recursie Trainingsdag 3, 2 april 2009 Getallenrijen We kunnen een rij getallen a 0, a 1, a 2,... op twee manieren definiëren: direct of recursief. Een directe formule geeft a n in

Nadere informatie

Eerste Huiswerk Algoritmiek 18 februari 2015, uitwisselen, WerkCollege.

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

Nadere informatie

(On)Doenlijke problemen

(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

Nadere informatie

Combinatoriek groep 2

Combinatoriek groep 2 Combinatoriek groep 2 Recursie Trainingsdag 3, 2 april 2009 Homogene lineaire recurrente betrekkingen We kunnen een rij getallen a 0, a 1, a 2,... op twee manieren definiëren: direct of recursief. Een

Nadere informatie

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

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

Nadere informatie

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

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

Nadere informatie

Negende college algoritmiek. 6/7 april Dynamisch Programmeren

Negende college algoritmiek. 6/7 april Dynamisch Programmeren Negende college algoritmiek 6/7 april 2017 Dynamisch Programmeren 1 algemeen Uit college 8: DP: - nuttig bij problemen met overlappende deelproblemen - druk een oplossing van het probleem uit in oplossingen

Nadere informatie

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 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 informatie

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

public 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 informatie

Datastructuren en algoritmen voor CKI

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

Nadere informatie

Ieder tweetal heeft nodig: Een kopie van de slagschipspelletjes: 1. 1A, 1B voor spel A, 2B voor spel A, 3B voor spel 3

Ieder 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 informatie

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

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 informatie

extra oefening algoritmiek - antwoorden

extra 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 informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

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

Nadere informatie

Automaten. Informatica, UvA. Yde Venema

Automaten. Informatica, UvA. Yde Venema Automaten Informatica, UvA Yde Venema i Inhoud Inleiding 1 1 Formele talen en reguliere expressies 2 1.1 Formele talen.................................... 2 1.2 Reguliere expressies................................

Nadere informatie

Divide & Conquer: Verdeel en Heers. Algoritmiek

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

Nadere informatie

Algoritmiek. 2 februari Introductie

Algoritmiek. 2 februari Introductie College 1 Algoritmiek 2 februari 2017 Introductie 1 Introductie -1- docent: Rudy van Vliet rvvliet@liacs.nl assistent werkcollege: Bart van Strien bartbes@gmail.com website: http://www.liacs.leidenuniv.nl/~vlietrvan1/algoritmiek/

Nadere informatie

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

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 piter@math.rug.nl 3 maart 2008 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren

Nadere informatie

Voortgezet Prog. voor KI

Voortgezet Prog. voor KI Voortgezet Prog. voor KI Docent: Michael Wilkinson IWI 142 tel. 050-3638140 (secr. 3633939) Frank Brokken RC 352 tel. 050-3633688 Voorkennis: Inleiding Programmeren voor KI (nieuwe stijl) Stof: Practicum

Nadere informatie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 23 februari 2009 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren Week 3 en 4:

Nadere informatie

Een eenvoudig algoritme om permutaties te genereren

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

Nadere informatie

Getaltheorie groep 3: Primitieve wortels

Getaltheorie groep 3: Primitieve wortels Getaltheorie groep 3: Primitieve wortels Trainingsweek juni 2008 Inleiding Voor a relatief priem met m hebben we de orde van a modulo m gedefinieerd als ord m (a) = min { n Z + a n 1 (mod m) }. De verzameling

Nadere informatie

extra oefeningen - antwoorden

extra oefeningen - antwoorden extra oefeningen - antwoorden inkomstenbelasting var salaris = Number(prompt("Voer een salaris in hele Bibra in.")); var rest = salaris; // Houd steeds het rest salaris bij. var belasting = 0; // Houd

Nadere informatie

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

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

Nadere informatie

Diophantische vergelijkingen in het kerstpakket

Diophantische vergelijkingen in het kerstpakket Diophantische vergelijkingen in het kerstpakket Benne de Weger b.m.m.d.weger@tue.nl Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven versie.0, 3 december 00 De TU/e viert een feestje

Nadere informatie

Uitwerking Puzzel 93-1, Doelloos

Uitwerking Puzzel 93-1, Doelloos Uitwerking Puzzel 93-1, Doelloos Wobien Doyer Lieke de Rooij Volgens de titel is deze puzzel zonder doel, dus zonder bekende toepassing. Het doel is echter nul en dat is zeker in de wiskunde niet niks.

Nadere informatie

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 5 juni 2007, uur

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 5 juni 2007, uur Uitgebreide uitwerking tentamen Algoritmiek Dinsdag juni 00, 0.00.00 uur Opgave. a. Een toestand bestaat hier uit een aantal stapels, met op elk van die stapels een aantal munten (hooguit n per stapel).

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2009 2010, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

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,

Nadere informatie

Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid.

Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid. Complexiteit of efficiëntie van algoritmen Hoe meet je deze? Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid. Een betere maatstaf is het aantal berekeningsstappen

Nadere informatie

Tentamen in2505-i Algoritmiek

Tentamen in2505-i Algoritmiek TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Tentamen in2505-i Algoritmiek 5 april 2007, 14.00-17.00 Het gebruik van boek of aantekeningen tijdens dit tentamen is niet

Nadere informatie

Semantiek (2IT40) Jos Baeten. HG 7.19 tel.: Hoorcollege 3 (12 april 2007)

Semantiek (2IT40) Jos Baeten.  HG 7.19 tel.: Hoorcollege 3 (12 april 2007) Jos Baeten josb@wintuenl http://wwwwintuenl/~josb/ HG 719 tel: 040 247 5155 Hoorcollege 3 (12 april 2007) Voorbeeld [Bewijstechniek 2 niet altijd succesvol] Executie van commands is deterministisch: c

Nadere informatie

Elke groep van 3 leerlingen heeft een 9 setje speelkaarten nodig: 2 t/m 10, bijvoorbeeld alle schoppen, of alle harten kaarten.

Elke 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

Recapitulatie: Ongeïnformeerd zoeken. Zoekalgoritmen ( ) College 2: Ongeïnformeerd zoeken. Dynamische breadth-first search

Recapitulatie: Ongeïnformeerd zoeken. Zoekalgoritmen ( ) College 2: Ongeïnformeerd zoeken. Dynamische breadth-first search Recapitulatie: Ongeïnformeerd zoeken Zoekalgoritmen (009 00) College : Ongeïnformeerd zoeken Peter de Waal, Tekst: Linda van der Gaag een algoritme voor ongeïnformeerd zoeken doorzoekt de zoekruimte van

Nadere informatie

De volgende opgave gaat over de B-bomen van het college, waar sleutels zowel in de bladeren als ook in de interne knopen opgeslagen worden.

De volgende opgave gaat over de B-bomen van het college, waar sleutels zowel in de bladeren als ook in de interne knopen opgeslagen worden. . a) Een Fibonacci boom (niet te verwarren met een Fibonacci queue) van hoogte h is een AVL-boom van hoogte h met zo weinig mogelijk knopen. i. Geefvoorh =,,,,eenfibonacciboomvanhoogteh(eenboombestaande

Nadere informatie

PARADOXEN 1 Dr. Luc Gheysens

PARADOXEN 1 Dr. Luc Gheysens PARADOXEN Dr. Luc Gheysens REKENKRONKELS Inleiding Het niet stellen van voorwaarden, een onoplettendheid in het rekenwerk, het verkeerd toepassen van een rekenregel, een foutieve redenering leiden soms

Nadere informatie

5 Afronden en afkappen

5 Afronden en afkappen WIS5 1 5 Afronden en afkappen 5.1 Floor en ceiling Floor en ceiling Conversiefuncties van reële getallen naar gehele getallen. x = het grootste gehele getal et x x = het kleinste gehele getal et x Uitspraak:

Nadere informatie

Oplossen van lineaire differentiaalvergelijkingen met behulp van de methode van Leibniz-MacLaurin

Oplossen van lineaire differentiaalvergelijkingen met behulp van de methode van Leibniz-MacLaurin Oplossen van lineaire differentiaalvergelijingen met behulp van de methode van Leibniz-MacLaurin Calculus II voor S, F, MNW 7 november 2005 1 De n-de afgeleide van het product van twee functies Voor we

Nadere informatie

1 Kettingbreuken van rationale getallen

1 Kettingbreuken van rationale getallen Kettingbreuken van rationale getallen Laten we eens starten met een breuk bijvoorbeeld 37/3 Laten we hier ons kettingbreuk algoritme op los, We concluderen hieruit dat 37 3 3 + 3 + + 37 3 + + + hetgeen

Nadere informatie

public boolean egualdates() post: returns true i f f there i f the l i s t contains at least two BirthDay objects with the same daynumber

public boolean egualdates() post: returns true i f f there i f the l i s t 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 informatie

Snelle algoritmen voor Min en Max filters

Snelle algoritmen voor Min en Max filters Snelle algoritmen voor Min en Max filters Michael H.F. Wilkinson Instituut voor Wiskunde en Informatica Rijksuniversiteit Groningen 27 augustus 2007 Morfologie: Dilatie en Erosie 1 of 18 Links beeld X.

Nadere informatie

Small Basic Programmeren Text Console 2

Small 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 informatie

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

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

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 28 oktober 2015 Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 1 / 25 Definitie Een boom is een samenhangende

Nadere informatie

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011 15 november 2011 Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree

Nadere informatie

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

Nadere informatie

Kortste Paden. Algoritmiek

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

Nadere informatie

Recursie: definitie. De som van de kwadraten van de getallen tussen m en n kan als volgt gedefinieerd worden:

Recursie: definitie. De som van de kwadraten van de getallen tussen m en n kan als volgt gedefinieerd worden: Recursie: definitie Een object wordt recursief genoemd wanneer het partieel bestaat uit of partieel gedefinieerd is in termen van zichzelf. Recursie wordt gebruikt bij wiskundige definities, bijvoorbeeld:

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST College 12 Twaalfde college complexiteit 11 mei 2012 Overzicht, MST 1 Agenda voor vandaag Minimum Opspannende Boom (minimum spanning tree) als voorbeeld van greedy algoritmen Overzicht: wat voor technieken

Nadere informatie

OPLOSSINGEN VAN DE OEFENINGEN

OPLOSSINGEN VAN DE OEFENINGEN OPLOSSINGEN VAN DE OEFENINGEN 1.3.1. Er zijn 42 mogelijke vercijferingen. 2.3.4. De uitkomsten zijn 0, 4 en 4 1 = 4. 2.3.6. Omdat 10 = 1 in Z 9 vinden we dat x = c 0 +... + c m = c 0 +... + c m. Het getal

Nadere informatie

TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR

TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR 2011-2012 Zaterdag 5 november 2011, 9u30 NAAM :... VRAAG 1: EVEN VEEL [5 PUNTEN] Schrijf een methode evenveel(), met twee argumenten,

Nadere informatie

Ontwerp van Algoritmen: opgaven weken 3 en 4

Ontwerp van Algoritmen: opgaven weken 3 en 4 0 Ontwerp van Algoritmen: opgaven weken 3 en 4 Voor alle volgende opgaven over programmaatjes geldt de spelregel: formuleer altijd eerst alle bewijsverplichtingen. selectie 45. (tail distribution)(prima

Nadere informatie

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet. Les C-02: Werken met Programma Structuur Diagrammen 2.0 Inleiding In deze lesbrief bekijken we een methode om een algoritme zodanig structuur te geven dat er gemakkelijk programmacode bij te schrijven

Nadere informatie

Hoofdstuk 7: Werken met arrays

Hoofdstuk 7: Werken met arrays Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel

Nadere informatie

Opgaven Abstracte Datastructuren Datastructuren, Werkgroep, 31 mei 2017.

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

Nadere informatie

12 september 2012 Complexiteit. Analyse van algoritmen (doelen) Empirische analyse : Voorbeeld Gevolgen

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

Nadere informatie

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

Tweede Toets Concurrency 2 februari 2017, , Educ-β. Tweede Toets Concurrency 2 februari 2017, 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

Nadere informatie

Hoofdstuk 8: Algoritmen en Complexiteit

Hoofdstuk 8: Algoritmen en Complexiteit Hoofdstuk 8: Algoritmen en Complexiteit Vandaag: Hoe meten we de performance van algoritmen? Waar ligt de grens tussen een goed en een slecht algoritme? 22 oktober 2014 1 Vandaag: Hoe meten we de performance

Nadere informatie

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c Een Minimaal Formalisme om te Programmeren We hebben gezien dat Turing machines beschouwd kunnen worden als universele computers. D.w.z. dat iedere berekening met natuurlijke getallen die met een computer

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

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

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 2 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 1 / 28 Minimum Opspannende Boom (Minimum Spanning

Nadere informatie

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )

Gegevens 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 informatie

opdrachten algoritmiek - antwoorden

opdrachten algoritmiek - antwoorden opdrachten algoritmiek - antwoorden Dit zijn de voorbeelduitwerkingen behorende bij de oefeningen algoritmiek. Er zijn altijd veel mogelijke manieren om hetzelfde probleem op te lossen. De voorbeelduitwerking

Nadere informatie

Algoritmen, Datastructuren en Complexiteit (214020/5)

Algoritmen, Datastructuren en Complexiteit (214020/5) Universiteit Twente Semester 2006/1 Afdeling Informatica 2 e huiswerkserie 10 januari 2007 Uitwerking Algoritmen, Datastructuren en Complexiteit (214020/5) Er zijn 4 opgaven. Er zijn 90 punten te behalen.

Nadere informatie

ALGORITMIEK. Keuzemodule Wiskunde B/D. Mark de Berg TU Eindhoven

ALGORITMIEK. Keuzemodule Wiskunde B/D. Mark de Berg TU Eindhoven ALGORITMIEK Keuzemodule Wiskunde B/D Mark de Berg TU Eindhoven Voorwoord Algoritmiek is het gebied binnen de informatica dat zich bezig houdt met het ontwerpen en analyseren van algoritmen en datastructuren.

Nadere informatie

Algoritmen, Datastructuren en Complexiteit (214020/5)

Algoritmen, Datastructuren en Complexiteit (214020/5) Universiteit Twente Semester 2005/1 Afdeling Informatica 2 e huiswerkserie 13 december 2005 Algoritmen, Datastructuren en Complexiteit (214020/5) De deadline voor het inleveren van deze huiswerkserie (bij

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

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

Volledige inductie. Hoofdstuk 7. Van een deelverzameling V van de verzameling N van alle natuurlijke getallen veronderstellen. Hoofdstuk 7 Volledige inductie Van een deelverzameling V van de verzameling N van alle natuurlijke getallen veronderstellen we het volgende: (i) 0 V (ii) k N k V k + 1 V Dan is V = N. Men ziet dit als

Nadere informatie

Computationale Intelligentie Dirk Thierens

Computationale Intelligentie Dirk Thierens Computationale Intelligentie Dirk Thierens Organisatie Onderwijsvormen: Docent: Topic: Collegemateriaal: Boek: Beoordeling: hoorcollege, practicum, werkcollege Dirk Thierens Deel : Zoekalgoritmen Toets

Nadere informatie

Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen

Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree traversal 15 november

Nadere informatie

Hoofdstuk 3. Week 5: Sorteren. 3.1 Inleiding

Hoofdstuk 3. Week 5: Sorteren. 3.1 Inleiding Hoofdstuk 3 Week 5: Sorteren 3.1 Inleiding Zoals al bleek in college 1 kunnen zoekalgoritmen veel sneller worden uitgevoerd, indien we weten dat de elementen in de lijst, waarin wordt gezocht, geordend

Nadere informatie

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 3 juni 2008, uur

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 3 juni 2008, uur Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 3 juni 2008, 10.00 13.00 uur Opgave 1. a. Een toestand is hier een m bij n bord met voor elk vakje aangegeven of het leeg is, óf een witte steen bevat

Nadere informatie

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

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

Nadere informatie

Stacks and queues. Hoofdstuk 6

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

Nadere informatie

Uitwerkingen eerste serie inleveropgaven

Uitwerkingen eerste serie inleveropgaven Uitwerkingen eerste serie inleveropgaven (1) Gegeven het 4 4 grid bestaande uit de 16 punten (i, j) met i, j = 0,..., 3. Bepaal het aantal driehoeken dat je kunt vinden zodanig dat ieder hoekpunt samenvalt

Nadere informatie