Datastructuren college 10
|
|
- Nathan van Dijk
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 we hadden Backtracking verbetering i i Datastructuren college 0 0: : : 0: : : P r r r r r b r b r P r r r b r b r backtracking we hoeven vaak de kandidaat niet helemaal af te maken om hem te kunnen verwerpen hier verwerpen we een kandidaat permutatie zodra we keer hetzelfde element tegenkomen. je verwerpt dan in een klap alle voortzettingen scheelt veel werk backtracking: depth-first zoeken algemeen backtrack algoritme niet alle kandidaten hoeven even lang te zijn. rr r br b r b r r br b r We hoeven de boom niet echt te bouwen: doorloop boom depth-first: eerst kinderen, daarna broers en zussen kinderen van links naar rechts bijhouden van huidige pad + te onderzoek voortzettingen is voldoende begin met lege deeloplossing voegtoe ( i ) if (klaar) meld_succes; else for ( alle_voortzettingen ) voeg_toe_aan_deeloplossing; if ( past ) voegtoe (i+); haal_uit_deeloplossing; kan ook met extra functie het eigenlijke backtracken kan ook impliciet zijn 4
2 alternatief backtrack algoritme kortste pad van muis naar kaas begin met lege deeloplossing voegtoe ( i ) if (klaar) meld_succes; else for ( alle_voortzettingen ) deze staat nu if ( past ) binnen de conditie voeg_toe_aan_deeloplossing; voegtoe (i+); haal_uit_deeloplossing; 5 we willen niet alle oplossingen, maar de lengte van het kortste pad muis van niks, weet pas of er kaas is als hij er op staat zoek oplossingen met backtracken ommuur doolhof om testen op binnen doolhof blijven te voorkomen kortste pad kan geen cycle bevatten! plaats muizen op het pad om cycles te voorkomen 6 kortste pad representatie kortste pad algoritme normaal: pad = <V 0, V, V k-, V k- > met V 0 is beginpunt (muis) V k- is eindpunt (kaas) Voor alle i: V i en V i- grenzen aan elkaar we zoeken het kortste van die paden kortste pad ieder veld hoogstens keer voor hier bouwen we het pad in de doolhof vinden van buren is eenvoudig voorkomen van cycles door merken van velden geen extra geheugen nodig backtrack-functie levert afstand tot kaas op 7 maak met behulp van backtracking alle mogelijke paden (begin bij muis, geen cycles) functieresultaat is afstand tot de kaas int afstand ( veld ) if ( op eindpunt ) return 0; else if ( veld is vrij ) // de test! bezet veld; // voorkomt cycles in pad bepaal minimum afstand vanaf alle buren; maak veld vrij; // backtrack stap return minimum + ; else return oneindig; 8
3 kortste pad: C++ representatie enum Veld Vrij, Muis, Kaas, Muur ; const int Lengte = 8, Breedte = 7; const int Oneindig = Lengte * Breedte; Veld doolhof [ Breedte ] [ Lengte ] = Muur, Muur, Muur, Muur, Muur, Muur, Muur, Muur, Vrij, Vrij, Vrij, Muur, Vrij, Muur, Muur, Vrij, Muur, Vrij, Muur, Vrij, Muur, Muur, Vrij, Vrij, Vrij, Vrij, Vrij, Muur, Muur, Vrij, Vrij, Vrij, Muur, Vrij, Muur, Muur, Kaas, Muur, Vrij, Vrij, Vrij, Muur, Muur, Vrij, Muur, Vrij, Vrij, Vrij, Muur, Muur, Muur, Muur, Muur, Muur, Muur, Muur ; 9 kortste pad algoritme in C++ int kortstepad ( int x, int y ); // voor mutual recursion int stuurmuizenvanaf ( int x, int y ) int min_weg = kortstepad ( x+, y ); min_weg = min (min_weg, kortstepad ( x, y+ )); min_weg = min (min_weg, kortstepad ( x-, y )); return min (min_weg, kortstepad ( x, y- )); int kortstepad ( int x, int y ) switch ( doolhof [ x ] [ y ]) case Kaas: return 0; case Vrij: // de test! doolhof [ x ] [ y ] = Muis; int min_weg = stuurmuizenvanaf ( x, y ); doolhof [ x ] [ y ] = Vrij; // backtrack stap return min_weg + ; default: return Oneindig; i.p.v. for-loop 0 kortste pad programma int main ( ) cout << kortstepad ( 6, 4 ) << endl; system("pause"); return EXIT_SUCCESS; resultaat is 6 correct, maar niet erg informatief we willen graag het pad zelf kennen probleem: op het moment dat we het kortste pad vinden weten we niet dat dit zo is. oplossingen: alle paden bewaren: duur en onnodig kortste pad afdrukken met normaal backtrack algoritme vinden we alle oplossingen hoe vinden we het kortste? bewaar kortste tot nu toe ( ktnt ) i.p.v. meldsucces nieuwe oplossing korter dan ktnt? zo ja: ktnt = nieuwe oplossing als je alles geprobeerd hebt is ktnt de kortste! kortste pad tot nu toe bewaren
4 kortste pad afdrukken globale object kortste pad lengte kortste tot nu toe als reference argument geef huidige lengte mee zodat je weet of je iets beters gevonden hebt. void kortstepad ( veld, lengte, int& kortste ) if ( op eindpunt ) if ( lengte < kortste ) kortste = lengte; // beter pad gevonden kopieerpad ( ); else if ( veld is vrij ) // de test! bezet veld; // voorkomt cycles in pad kortstepad vanaf alle buren ( lengte+ ); maak veld vrij; // backtrack stap kortste pad printen in C++ void kortsteweg ( int x,int y, int lengte, int& kortste ) switch ( doolhof [ x ][ y ]) case Kaas: if ( lengte < kortste ) // koter pad? kortste = lengte; copyweg ( ); return; i.p.v. case Vrij: // de test! for-loop doolhof [ x ][ y ] = Muis; muizenvanaf ( x, y, lengte+, kortste ); doolhof [ x ][ y ] = Vrij; // backtrack stap return; default: return; 4 muizen vanaf de buren void muizenvanaf ( int x, int y, int lengte, int& kortste ) kortsteweg ( x+, y, lengte, kortste ); kortsteweg ( x, y+, lengte, kortste ); kortsteweg ( x-, y, lengte, kortste ); kortsteweg ( x, y-, lengte, kortste ); by reference argument: zelfde effect als globale variabele, maar mooier int main ( ) int kortste = Oneindig; kortsteweg ( 4, 6, 0, kortste ); if ( kortste < Oneindig ) cout << "De lengte van de korste weg is " << kortste << endl; toonweg ( weg ); else cout << "Geen weg gevonden\n"; toonweg ( doolhof ); system("pause"); return EXIT_SUCCESS; 5 korste pad: oplossing ##################### ### ### ### ### ### ### ### ### @ ### ### ### ### ### ### ##################### wat iedereen binnen 0 seconden al gezien had 6 4
5 op de zelfde manier magische vierkanten in zo min mogelijk zetten met een paard op een schaakbord van een positie naar een andere vind een rondgang van het paard op het schaakbord zodat alle posities bezocht worden. 7 vierkant van N bij N bevat getallen van 0N -, of N som van alle rijen en kolommen is gelijk soms ook de som van de diagonaal gelijk oplossing oplossing magische vierkanten met backtracking N bij N vierkant is matrix int[n][n] met een beetje moeite kunnen we de som van de rijen en kolommen uitrekenen +++(m-)+m = m*(m+)/ hier m = N - er bestaan betere algoritmen dan backtracking! dus totale som (N -)*(N -+)/ voor iedere rij/kolom is de som dus (N -)*N/ vul kolom voor kolom kijk of som nog steeds kan passen gebruik bool vrij[nn] om te kijken of getallen vrij zijn 9 magische vierkanten in C++ const int N = ; const int NN = N*N; const int SOM = (NN-)*N/; int main ( ) int m [ N ] [ N ]; bool vrij [ NN ]; for ( int i=0; i<nn; i+= ) vrij [ i ] = true; vul ( 0, 0, m, vrij, 0 ); system("pause"); return EXIT_SUCCESS; 0 5
6 vullen in C++ void vul( int i, int j, int m [N][N], bool vrij [NN], int s ) if ( j==n ) // vierkant vol? som in print ( m ); kolom else if ( i==n && s==som ) // kolom vol en som klopt? vul ( 0, j+, m, vrij, 0 ); else if ( i<n ) // nog wat toevoegen aan kolom? for ( int n=0; n<nn; n+= ) if ( vrij[n] && s+n<=som ) // n vrij en past hier? waar kijken we vrij [ n ] = false; naar de rijen? m [ i ][ j ] = n; vul ( i+, j, m, vrij, s+n ); // recursie vrij [ n ] = true; // backtrack stap vullen in C++ void vul ( int i, int j, int m [N][N], bool vrij [NN], int s ) if ( j==n ) print ( m ); bool klopt ( int m [N][N], int i ) else if ( i==n && s==som ) vul ( 0, j+, m, vrij, 0 ); int s=0; else if ( i<n ) for ( int j=0; j<n; j+= ) for ( int n=0; n<nn; n+= ) s += m [ i ][ j ]; if ( vrij[n] && s+n<=som ) return s==som; vrij [ n ] = false; m [ i ][ j ] = n; if ( j<n- klopt ( m, i )) vul ( i+, j, m, vrij, s+n ); vrij[n] = true; kan dit slimmer? representatie deeloplossing kortste pad analyse globale rij waar we oplossing in bouwen permutaties, n-queens één globaal bord/wereld waar we oplossing in bouwen muis in doolhof, kortste pad paard op schaakbord soms rij van borden nodig schaakspel, 5 puzzel Algemeen voor backtrack algoritmen: O(V L ) V aantal mogelijkheden L langst mogelijke pad niet beter dan brute force; effect afsnijden sub-bomen is onzeker Voor muis in doolhof: V = Lengte * Breedte n L = Lengte * Breedte n complexiteit = O(V L ) door slim te genereren: O( L ) = O( Lengte*Breedte ) dergelijke heuristieken helpen dus echt door afsnijden sub-bomen met predikaat valt hoeveelheid werk vaak nog wel mee 4 6
7 kanoën waar gebeurd: soldaten moeten een brede rivier oversteken kleine jongentjes willen wel helpen met hun kano maar, in de kano kunnen of kinderen, of soldaat dus niet soldaten, of soldaat + kind de oplossing is niet moeilijk, maar we gaan met backtracking een oplossing zoeken backtrack kanoën oplossing is een rijtje van die situaties klasse kant met: aantal jongens hier aantal soldaten hier kant van de kano methoden voor: is klaar? kan over varen? vaar over constructor 5 6 const int Begin = ; enum InBoot J, JJ, S ; enum Kano Hier, Daar ; class Kant public: int jongens; int soldaten; Kano kano; klasse kant Kant ( ): jongens ( Begin ), soldaten ( Begin ), kano ( Hier ) ; bool klaar ( ) return soldaten==0 && jongens==begin && kano==hier; ; bool kan ( InBoot i ); void vaar ( Kant& naar, InBoot i ); ; 7 de methode kan bool Kant :: kan ( InBoot i ) if ( kano==hier ) switch ( i ) case J: return jongens >0; case JJ: return jongens >; case S: return soldaten>0; else // kano==daar switch ( i ) case J: return Begin-jongens >0; case JJ: return Begin-jongens >; case S: return Begin-soldaten>0; 8 7
8 methode vaar void Kant :: vaar ( Kant& naar, InBoot i ) if ( kano==hier ) naar.kano = Daar; &! switch ( i ) case J: naar.jongens = jongens-; naar.soldaten = soldaten ; return; case JJ:naar.jongens = jongens-; naar.soldaten = soldaten ; return; case S: naar.jongens = jongens ; naar.soldaten = soldaten-; return; else. 9 uitvoer operator << ostream& operator << (ostream& os, Kant k) return os << "Kant: Jongens " << k.jongens << " soldaten " << k.soldaten << ", daar: Jongens " << begin-k.jongens << " soldaten " << begin-k.soldaten << (k.kano==hier?" kano is hier\n":" kano is daar\n"); 0 backtracken voor kortste oplossing nodig: huidig pad en beste tot nu toe + lengte const int MaxPad = 0*Begin; // kies iets dat zeker lang genoeg is Kant pad [ MaxPad ]; Kant kortste [ MaxPad ]; int lengte = MaxPad; // ktnt: pad // ktnt: lengte bewaren van huidige pad in beste tot nu toe: void bewaar ( int l ) lengte = l; for ( int i=0; i<=l; i+= ) kortste [ i ] = pad [ i ]; toevoegen void voegtoe ( int i ) assert ( i<maxpad- ); if ( pad [ i ]. klaar ( ) ) if ( i < lengte ) bewaar ( i ); type conversie else for ( InBoot ib=j; ib<=s; ib = InBoot ( ib+ ) ) if ( pad [ i ]. kan ( ib ) ) pad [ i ]. vaar ( pad [ i+ ], ib ); voegtoe ( i+ ); // backtrack stap is impliciet 8
9 resultaat: programma uitvoeren Assertion failed: i<maxpad- hoe kan dit?? cycle jongentje blijft heen en weer roeien wat doen we eraan? testen op nieuwe situatie kortste pad kan nooit keer dezelfde toestand bevatten andere mogelijkeheid: bovengrens op lengte pad void voegtoe ( int i ) assert ( i<maxpad- ); if ( pad[i].klaar() ) if ( i<lengte ) bewaar ( i ); else for ( InBoot ib=j; ib<=s; ib = InBoot ( ib+ ) ) if ( pad[i].kan( ib ) ) pad[i].vaar ( pad[i+], ib ); if ( isnieuw ( i ) ) voegtoe( i+ ); // backtrack toevoegen e poging 4 resultaat 0: Kant: Jongens soldaten, daar: Jongens 0 soldaten 0, kano is hier : Kant: Jongens 0 soldaten, daar: Jongens soldaten 0, kano is daar : Kant: Jongens soldaten, daar: Jongens soldaten 0, kano is hier : Kant: Jongens soldaten, daar: Jongens soldaten, kano is daar 4: Kant: Jongens soldaten, daar: Jongens 0 soldaten, kano is hier 5: Kant: Jongens 0 soldaten, daar: Jongens soldaten, kano is daar 6: Kant: Jongens soldaten, daar: Jongens soldaten, kano is hier 7: Kant: Jongens soldaten 0, daar: Jongens soldaten, kano is daar 8: Kant: Jongens soldaten 0, daar: Jongens 0 soldaten, kano is hier ga na dat dit een correcte oplossing is programma werkt ook voor andere Begin waarden resultaat Begin = 0: Kant: Jongens soldaten, daar: Jongens 0 soldaten 0 kano is hier : Kant: Jongens soldaten, daar: Jongens soldaten 0 kano is daar : Kant: Jongens soldaten, daar: Jongens soldaten 0 kano is hier : Kant: Jongens 0 soldaten, daar: Jongens soldaten 0 kano is daar 4: Kant: Jongens soldaten, daar: Jongens soldaten 0 kano is hier 5: Kant: Jongens soldaten, daar: Jongens soldaten kano is daar 6: Kant: Jongens soldaten, daar: Jongens soldaten kano is hier 7: Kant: Jongens 0 soldaten, daar: Jongens soldaten kano is daar 8: Kant: Jongens soldaten, daar: Jongens soldaten kano is hier 9: Kant: Jongens soldaten, daar: Jongens soldaten kano is daar 0: Kant: Jongens soldaten, daar: Jongens soldaten kano is hier : Kant: Jongens soldaten 0, daar: Jongens soldaten kano is daar : Kant: Jongens soldaten 0, daar: Jongens 0 soldaten kano is hier kan het net zo snel met jongens en soldaten? 5 6 9
10 reflectie void voegtoe ( int i ) assert ( i<maxpad- ); if ( pad[i].klaar() ) is het wel nodig om hier if ( i<lengte ) een abort te doen? bewaar(i); else for ( InBoot ib=j; ib<=s; ib = InBoot (ib+) ) if ( pad[i].kan(ib) ) pad[i].vaar ( pad[i+], ib ); if ( isnieuw ( i ) ) voegtoe( i+ ); // backtrack 7 void voegtoe ( int i ) if ( pad[i].klaar() ) if ( i<lengte ) bewaar(i); else if ( i<maxpad- ) for ( InBoot ib=j; ib<=s; ib = InBoot (ib+) ) if ( pad[i].kan(ib) ) zonder abort pad[i].vaar ( pad[i+], ib ); if ( isnieuw ( i ) ) voegtoe( i+ ); // backtrack is die nog echt nodig? Nee, maar wel verstandig om takken snel af te snijden 8 op de zelfde manier boer, geit, kool en wolf kannibalen en missionarissen. 9 heuristieken Archimedes: Eureka! slimme vondsten representatie van de toestand n-queens: rij van kolomen i.p.v. heel bord volgorde van nieuwe elementen in voegtoe eerste koningin op eerste helft van de velden afbreken van het zoeken er zit een cycle in het pad herkennen dat we hier al zijn geweest we hebben de gespiegelde toestand al gezien herkennen dat het niets meer zal worden we hebben al een kortere oplossing gezien. maken backtracking vaak net bruikbaar 40 0
11 moeten we backtracken? alleen als je geen beter algoritme weet: O(n L ) breadth-first zoeken is vaak sneller, maar kan veel administratie vergen breadth-first: doorzoek heel niveau voordat je naar kinderen kijkt. muis in doolhof breadth-first idee: merk alle velden met afstand tot de kaas op veld van de kaas is afstand 0 op alle buren is afstand op buren van veld met n is afstand hoogstens n+ Analyse: buren van veld met afstand n vinden en merken: O(Lengte*Breedte) = O(n ) = O(V) Alle L velden merken: O(L * V) = O(n 4 ) Onthouden wat te merken veld vinden in O() totaal L * O() = O(L) = O(n )!! 4 4 breadth-first doolhof breadth-first doolhof const int Muur=-, Kaas=0, Vrij=Oneindig; void vuldoolhof ( ) bool gevonden = true; // er is een veld met afstand n void merkveld ( int i, int j, int n ) if ( doolhof[i][j] > n ) doolhof[i][j] = n; in het begin alles Oneindig (groot) for ( int n=0; gevonden ;n++ ) gevonden = false; for ( int i = 0; i < Lengte; i++ ) iets slimmer dan n<lengte*breedte for ( int j = 0; j < Breedte; j++ ) if ( doolhof[i][j]==n ) // er is een veld op afstand n void merkvelden ( int i, int j, int n ) merkveld ( i+, j, n ); merkveld ( i-, j, n ); merkveld ( i, j+, n ); merkveld ( i, j-, n ); merkvelden ( i, j, n+ ); gevonden = true; 4 44
12 breadth-first doolhof void toonweg ( ) for ( int i = 0; i < Lengte; i++ ) for ( int j = 0; j < Breedte; j++ ) switch ( doolhof [i][j] ) case Vrij: cout << " "; break; case Muur: cout << "###"; break; default: cout << setw() << doolhof[i][j] << ' ';break; cout << endl; 45 breadth-first doolhof resultaat ##################### ### ### 8 ### ### ### 5 ### 7 ### ### ### ### ### 7 ### ### 0 ### ### ### ### ### ##################### kortste weg van ieder punt direct af te lezen door aanpassen doolhof is administratie klein met bijhouden velden (queue) gaat het nog beter denk twee keer na voor je gaat programmeren!! reflectie is belangrijk!!! 46 Wat hebben we gedaan dictaat: H boek: backtracking komt niet voor Zoeken van oplossingen: in principe boom van oplossingen depth-first: bouw steeds één tak; rij i.p.v. boom brute force: bouw complete kandidaat-oplossing test of kandidaat-oplossing voldoet backtrack: test bij iedere toevoeging of het nog wat kan worden Opgave: weer backtracking 47
Datastructuren college 9
Zoeken van oplossingen Datastuctuen college 9 zoeken van oplossingen backtacking Vaak kennen we geen algoitme dat diect de juiste oplossing constueet. Ondezoek dan kandidaat-oplossingen koninginnen op
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieVerslag Opdracht 4: Magische Vierkanten
Verslag Opdracht 4: Magische Vierkanten Stefan Schrama, Evert Mouw, Universiteit Leiden 2007-08-14 Inhoudsopgave 1 Inleiding 2 2 Uitleg probleem 2 3 Theorie 2 4 Aanpak 2 5 Implementatie 4 6 Experimenten
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
1 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieDatastructuren: 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)
Nadere informatieZesde college algoritmiek. 22 maart Backtracking
Zesde college algoritmiek 22 maart 2019 Backtracking 1 Backtracking Bij veel problemen gaat het erom een element met een speciale eigenschap te vinden binnen een ruimte die exponentieel groeit als functie
Nadere informatieVijfde college algoritmiek. 17 maart Exhaustive search Graafwandelingen Backtracking
College 5 Vijfde college algoritmiek 17 maart 2016 Exhaustive search Graafwandelingen Backtracking 1 Exhaustive search Exhaustive search: brute force benadering voor problemen die te maken hebben met het
Nadere informatieVijfde college algoritmiek. 2/3 maart Exhaustive search
Vijfde college algoritmiek 2/3 maart 2017 Exhaustive search 1 Voor- en nadelen Brute force: Voordelen: - algemeen toepasbaar - eenvoudig - levert voor een aantal belangrijke problemen (zoeken, patroonherkenning)
Nadere informatiedefinities 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
Nadere informatieProgrammeermethoden. 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 informatieUitwerking 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
Nadere informatieUitwerking 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.
Nadere informatieTwaalfde 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 informatieEen 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 informatieZesde college algoritmiek. 23 maart Backtracking. Verdeel en Heers
Zesde college algoritmiek 23 maart 2018 Backtracking Verdeel en Heers 1 Backtracking Bij veel problemen gaat het erom een element met een speciale eigenschap te vinden binnen een ruimte die exponentieel
Nadere informatieProgrammeermethoden. 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 informatieTweede 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)
Nadere informatieElfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort
Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D
Nadere informatieVierde 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
Nadere informatieZesde college algoritmiek. 9/10 maart Backtracking. Verdeel en Heers
Zesde college algoritmiek 9/10 maart 2017 Backtracking Verdeel en Heers 1 Backtracking Bij veel problemen gaat het erom een element met een speciale eigenschap te vinden binnen een ruimte die exponentieel
Nadere informatieUitgebreide 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,
Nadere informatieUitwerking tentamen Algoritmiek 9 juni :00 17:00
Uitwerking tentamen Algoritmiek 9 juni 2015 14:00 17:00 1. Clobber a. Toestanden: m x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal O gelijk aan het aantal X of er is hooguit één
Nadere informatieVoorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten
Nadere informatieHoe een TomTom een sudoku oplost
Hoe een TomTom een sudoku oplost dr. Arnold Meijster a.meijster@rug.nl Palindromen Opdracht: Ga van een willekeurig woord na, of het een palindroom is of niet. lol pop lepel negen droomoord parterretrap
Nadere informatiecolleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser
colleges recursieve datastructuren college 9 interpreteren: waarde van bomen bepalen transformeren: vorm van bomen veranderen parseren herkennen van expressie in de tekst herkennen van functies onderwerp
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in
Nadere informatieDatastructuren: 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:
Nadere informatieRecapitulatie: 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 informatieBeginselen van programmeren Practicum 1 (Doolhof) : Oplossing
Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Introductie In dit document geven we een mogelijke oplossing voor het eerste practicum. Deze oplossing gebruikt verschillende klassen en overerving,
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 9 december 2015 Foreach String arrays Boomstructuren Interfaces Ingebouwde datastructuren Quiz Foreach Foreach Speciale versie van for om iets voor alle elementen
Nadere informatiePracticumopgave 3: SAT-solver
Practicumopgave 3: SAT-solver Modelleren en Programmeren 2015/2016 Deadline: donderdag 7 januari 2016, 23:59 Introductie In het vak Inleiding Logica is onder andere de propositielogica behandeld. Veel
Nadere informatieDerde college algoritmiek. 22 februari Complexiteit Toestand-actie-ruimte
Algoritmiek 2019/Complexiteit Derde college algoritmiek 22 februari 2019 Complexiteit Toestand-actie-ruimte 1 Algoritmiek 2019/Complexiteit Opgave 1 bomenpracticum Niet de bedoeling: globale (member-)variabele
Nadere informatieDe Leidsche Flesch Studievereniging voor Natuurkunde, Sterrenkunde, Wiskunde en Informatica sinds DLF Pointerworkshop
DLF Pointerworkshop Opgaven 2 maart 2016 XKCD # 371 In dit document staan een aantal oude tentamenopgaven om te oefenen voor het hertentamen PR Bij de selectie is rekening gehouden met de opgaven die het
Nadere informatieAlgoritmiek. 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
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde
Nadere informatieUitwerking tentamen Analyse van Algoritmen, 29 januari
Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4
Nadere informatieUitgebreide 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 informatieZevende college algoritmiek. 23/24 maart Verdeel en Heers
Zevende college algoritmiek 23/24 maart 2017 Verdeel en Heers 1 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht 0 1 2 3 0 1 2 3 4 1 2 3 4 5 2 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht
Nadere informatieZevende college Algoritmiek. 6 april Verdeel en Heers
Zevende college Algoritmiek 6 april 2018 Verdeel en Heers 1 Algoritmiek 2018/Backtracking Programmeeropdracht 2 Puzzel 2: D O N A L D G E R A L D + R O B E R T Elke letter stelt een cijfer voor (0,1,...,9)
Nadere informatieTwaalfde college algoritmiek. 13 mei Branch & Bound Heap, Heapsort & Heapify
Algoritmiek 2016/Branch & Bound Twaalfde college algoritmiek 13 mei 2016 Branch & Bound Heap, Heapsort & Heapify 1 Algoritmiek 2016/Branch & Bound TSP met Branch & Bound Mogelijke ondergrenzen voor de
Nadere informatieEerste college algoritmiek. 5 februari Introductie
College 1 Eerste college algoritmiek 5 februari 2016 Introductie 1 Introductie -1- docent: Jeannette de Graaf; kamer 151 e-mail: j.m.de.graaf@liacs.leidenuniv.nl assistenten: Hanjo Boekhout, Leon Helwerda,
Nadere informatieSPOJ oplossingen Gilles Callebaut 7 augustus 2015
SPOJ oplossingen 2012-2013 Gilles Callebaut 7 augustus 2015 DISCLAIMER Oefeningen zijn niet altijd correct of optimaal. Gelieve de oefeningen enkel te gebruiken ter ondersteuning. Van kopiëren leer je
Nadere informatie9. Strategieën en oplossingsmethoden
9. Strategieën en oplossingsmethoden In dit hoofdstuk wordt nog even terug gekeken naar alle voorgaande hoofdstukken. We herhalen globaal de structuren en geven enkele richtlijnen voor het ontwerpen van
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 25 november 2015 Herhaling Meer herhaling Recursie Mutuele recursie Objecten Herhaling Fibonacci class Fibonacci { public static void fibonaccitot(int bovengrens)
Nadere informatieTentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI
Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieVijfde college algoritmiek. 9 maart Brute Force. Exhaustive search
Vijfde college algoritmiek 9 maart 2018 Brute Force Exhaustive search 1 Before I say another word Opdracht 1 partner? deadline: 21/22 maart 2018 vragenuren vanmiddag, 15.30 uur (Jacob) woensdag 21 maart,
Nadere informatieTree 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 informatieProgrammeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/
Programmeermethoden Controle-structuren Walter Kosters week 3: 17 21 september 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleveren opgave 1 Inleveren: digitaal clintonobama1.cc en print van mooi.pdf.
Nadere informatieVeel succes! 1. Gegeven is de volgende klasse:
Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Derde deeltentamen
Nadere informatieDerde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte
Algoritmiek 2018/Complexiteit Derde college algoritmiek 2 februari 2018 Complexiteit Toestand-actie-ruimte 1 Algoritmiek 2018/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:
Nadere informatieInleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
Nadere informatieUitgebreide uitwerking Tentamen Complexiteit, juni 2017
Uitgebreide uitwerking Tentamen Complexiteit, juni 017 Opgave 1. a. Een pad van de wortel naar een blad stelt de serie achtereenvolgende arrayvergelijkingen voor die het algoritme doet op zekere invoer.
Nadere informatieNAAM: Programmeren 1 Examen 29/08/2012
Programmeren 29 augustus 202 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je
Nadere informatieDerde 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,
Nadere informatieProgrammeermethoden. Arrays. Walter Kosters. week 7: oktober kosterswa/pm/
Programmeermethoden Walter Kosters week 7: 15 19 oktober 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Nonogrammen Japanse puzzels (Nonogrammen) zien er zo uit: 1 1,1 1 1,1 1 0 1,1 0 1,1 3 7 7 7 7 7 7
Nadere informatieObjectgericht Programmeren. (in Python)
Objectgericht Programmeren (in Python) Motivatie Programmeren is moeilijk Waarom? Complexiteit 100 200 300 400 500 kloc (1000 lijnen code) g1 = raw_input("eerste getal?") g2 = raw_input("tweede getal?")
Nadere informatiesoftware constructie recursieve datastructuren college 15 5 stappen plan ontwerpen de software bestaat uiteindelijk uit datatypen functies
software constructie recursieve datastructuren college 15 software engineering highlights 1 de software bestaat uiteindelijk uit datatypen functies verbindingen geven gebruik aan main is de top van het
Nadere informatieInformatica: C# WPO 10
Informatica: C# WPO 10 1. Inhoud 2D arrays, lijsten van arrays, NULL-values 2. Oefeningen Demo 1: Fill and print 2D array Demo 2: Fill and print list of array A: Matrix optelling A: Matrix * constante
Nadere informatieTentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code
Nadere informatieAlgoritmiek. 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 informatiepublic boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber
Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden
Nadere informatieProgrammeermethoden. 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
Nadere informatieDoorzoeken 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
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 9 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Zoekbomen Binaire boom Bestaat uit knopen Beginknoop is de wortel (root) Elke knoop heeft
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 27 november 2015 Recursie Objecten Constructors Aanpassen variabelen this keyword Recursie Recursie Recursieve functie roept zichzelf (direct of indirect) aan
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));
Nadere informatieUitgebreide uitwerking Tentamen Complexiteit, mei 2007
Uitgebreide uitwerking Tentamen Complexiteit, mei 007 Opgave. a. Een beslissingsboom beschrijft de werking van het betreffende algoritme (gebaseerd op arrayvergelijkingen) op elke mogelijke invoer. In
Nadere informatieextra oefening algoritmiek - antwoorden
extra oefening algoritmiek - antwoorden opgave "Formule 1" Maak een programma dat de gebruiker drie getal A, B en C in laat voeren. De gebruiker zorgt ervoor dat er positieve gehele getallen worden ingevoerd.
Nadere informatieAanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur
Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, 13.30-15.30 uur Naam: Studentnummer: Het tentamen bestaat uit 4 opgaven. Opgaven 1 levert 8 punten op, opgave 2 levert 12 punten
Nadere informatieDerde 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
Nadere informatieHOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10
CPP 1 van 10 ADSdt 1-2009 TENTAMENVOORBLAD Voor aanvang van het tentamen s.v.p. de tentamengegevens goed doorlezen om eventuele misverstanden te voorkomen!! Naam student : Studentnummer : Groep : Studieonderdeel
Nadere informatieGödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3
Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Koen Rutten, Aris van Dijk 30 mei 2007 Inhoudsopgave 1 Verzamelingen 2 1.1 Definitie................................ 2 1.2 Eigenschappen............................
Nadere informatieTiende 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 informatiePlanning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)
Planning 1. Mini College 2. Introductiecursus Imperatief Programmeren 3. Crash and Compile (vanaf 17:00 uur) Geschiedinis van de Codemonkeys imperatief programmeren voor beginners Geschiedenis van de Codemonkey
Nadere informatieZesde college algoritmiek. 18 maart Backtracking. Verdeel en Heers
College 6 Zesde college algoritmiek 18 maart 2016 Backtracking Verdeel en Heers 1 Backtracking Basisidee backtracking bouw een oplossing stap voor stap op en controleer steeds of de deeloplossing in conflict
Nadere informatieMinimum Opspannende Bomen. Algoritmiek
Minimum Opspannende Bomen Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee greedy algoritmen + tijd en datastructuren: Het algoritme van
Nadere informatieREEKS II. Zaterdag 6 november 2010, 11u
TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR 2010-2011 REEKS II Zaterdag 6 november 2010, 11u NAAM :... VRAAG 1: AFSTAND [5 PUNTEN] In deze oefening gaan we opzoek naar identieke
Nadere informatieAPPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts
APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN Onderdeel van SmartProducts INHOUD COLLEGE 3 Scope van variabelen {3.9} Class ontwerpen en maken,
Nadere informatieProgrammeren in Java les 3
4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een
Nadere informatieWiskundige Analyse I. Hoofdstuk 1. Vraag 1.1 Het beginvoorwaardenprobleem. x 2 y + xy + x 2 y = 0, y(0+) = 1, y (0+) = 0. bezit een unieke oplossing.
Hoofdstuk 1 Wiskundige Analyse I Vraag 1.1 Het beginvoordenprobleem x 2 y + xy + y = 0, y(0+) = 1, y (0+) = 0 bezit een unieke oplossing. vals Vraag 1.2 Het beginvoordenprobleem x 2 y + xy + x 2 y = 0,
Nadere informatieSyntax- (compile), runtime- en logische fouten Binaire operatoren
Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle
Nadere informatieDeze actie kadert binnen het project SOLABIO-'Soorten en landschappen als dragers voor biodiversiteit', mede gefinancierd door het Europees programma
!"#" $% #!&'!()!!$% *!$ + ), -!. /!& $ 0 ( 1 & & $ $ 1 ( #!& #!& #!& &% 2/3*""4 $$%/"32"4 5 ) 66 &. ) #!& ) 7 &, 89 8.9,7 !!:%$ " # $ # % $ & $ ;!!! $!:%$ 1!!! 0 0!!! ;, *!$ *!# + ; *! *!* *!-
Nadere informatieNegende 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 informatie2 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 informatieDatastructuren en Algoritmen
Datastructuren en Algoritmen Tentamen Vrijdag 6 november 2015 13.30-16.30 Toelichting Bij dit tentamen mag je gebruik maken van een spiekbriefje van maximaal 2 kantjes. Verder mogen er geen hulpmiddelen
Nadere informatieProgrammeren (1) Examen NAAM:
Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft
Nadere informatieVakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be
Nadere informatieUitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf
Nadere informatieTentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld
Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag u gebruik maken van: Barnes, Object-Oriented Programming with Java en de Notitie Algoritmiek
Nadere informatieTiende 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 informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieUniversiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
Nadere informatieAanvullende toets Gameprogrammeren Woensdag 5 januari 2011, uur
Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Aanvullende
Nadere informatieProgrammeermethoden. Functies vervolg. Walter Kosters. week 5: 1 5 oktober kosterswa/pm/
Programmeermethoden Functies vervolg Walter Kosters week 5: 1 5 oktober 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Files manipuleren 1 Deze void-functie telt niet-lege regels in een file invoer: void
Nadere informatieZevende college algoritmiek. 24 maart Verdeel en Heers
Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties
Nadere informatieTiende college algoritmiek. 14 april Gretige algoritmen
College 10 Tiende college algoritmiek 1 april 011 Gretige algoritmen 1 Greedy algorithms Greed = hebzucht Voor oplossen van optimalisatieproblemen Oplossing wordt stap voor stap opgebouwd In elke stap
Nadere informatieVariabelen en statements in ActionScript
Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer
Nadere informatieInformatica 2e semester
Informatica Les 6 Basis- & slimme algoritmen Jan Lemeire Informatica 2 e semester februari mei 2019 Vandaag 1. Iets met functie 2. Interfaces en abstracte klasses 3. Newton s algoritme 4. Oefening op interfaces
Nadere informatie