String Matching. Algoritmiek
|
|
|
- Joost van der Linden
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 String Matching Algoritmiek
2 String Matching Gegeven string (haystack): aabaabbabaaba zoek patroon abba (needle) 4 algoritmen: Naïef Rabin-Karp Eindige Automaat Knuth-Morris-Pratt 2
3 String Matching (formeel) Tekst A[0 n 1], patroon P[0 m 1] Wil: k zodat A k k + m = P[0 m 1] Substring met lengte m van A die begint op positie k Tekst is over alfabet Σ ({0,1}, {A, B,, Z}, [0,255], o.i.d.) 3
4 Naïef NaiveMatch(A,P) for i := 0 to n-m-1 if Checkmatch(A,i,P) yield i return Bekijk alle mogelijke shifts Looptijd? CheckMatch(A,k,P) for i := 0 to m-1 if A[k+i] P[i] return false return true 4
5 Rabin-Karp Idee: vat strings op als getallen in base Σ hallo is base 26 (= ) is base 2 (= 20) Vergelijk getallen ipv. strings 5
6 Voorbeeld Zoek orit in algoritme orit = = algo = = lgor = = gori= = orit= =
7 Rabin-Karp (1) RK1(A,P) H = String2Int(P) for i := 0 to n-m-1 if String2Int(A[I i+s]) = H yield i return String2Int(A) r = h for i := 0 to n-1 h := Σ h + A[i] return h Looptijd? 7
8 Snel herberekenen Herberekenen kan in O 1 door te schuiven H 0 = H 1 = Algemeen: H i + 1 = A i + m Σ (H i A i Σ m 1 ) Rolling Hash 8
9 Rabin-Karp (2) RK2(A,P) ph = String2Int(P) sh = String2Int(A[1 m]) for i := 0 to n-m-1 if ph = sh yield i sh := sh Σ + A[i+m] A[i] Σ m return Looptijd? 9
10 Wat schiet dit op? Hash is 32-bit integer: werkt alleen voor m 5 (26 7 > 2 32 ) Idee: bekijk getallen modulo q Je kan alle tussenresultaten mod q nemen, resultaat blijft gelijk 10
11 Voorbeeld = (mod 23) 1 1 (mod 23) = (mod 23) = (mod 23) = (mod 23) Rekent nooit met getallen > q Σ 11
12 Rabin-Karp (3) RK3(A,P) ph = String2Int(P) % q sh = String2Int(A[0 m-1]) % q for i := 0 to n-m-1 if ph = sh yield i sh := sh Σ + A[i+m] A[i] Σ m % q return 12
13 Spurious Hits Zoek orit in algoritme; orit = = mod 17 algo = = mod 17 lgor = = mod 17 13
14 Rabin-Karp (4) RK4(A,P) ph = String2Int(P) % q sh = String2Int(A[0 m-1]) % q for i := 0 to n-m-1 if ph = sh && CheckMatch(A,i,P) yield i sh := sh Σ + A[i+m] A[i] Σ m % q return 14
15 Looptijd O(n) voor het checken van de hash, PLUS: 1. O(m) per gevonden substring 2. O(m) per spurious hit Wat is het aantal spurious hits? 15
16 Gemiddelde looptijd Aaname: q vast, tekst vast, patroon random Kans dat het patroon zelfde hash heeft als een gegeven shift van de tekst is 1/q E spurious hits = E Σ i I shift i is hit = Σ i E I shift i is hit = Σ i 1/q = n/q Gemiddelde looptijd: O n + nm/q 16
17 Aanvallen! Er zijn superslechte invoeren te bedenken Tekst: aaaaaaaaaaaaaaa, patroon: aaaaaaxx Een aanvaller kan ons systeem platleggen met slechte invoer (DOS-aanval) Oplossing: maak q random (priem) 17
18 Verwachte looptijd Gemiddeld v.s. Verwacht Bekijk vaste strings en shift orit = = lgor = = Wanneer spurious hit? 18
19 Verwachte looptijd orit = = lgor = = H A k k + m H P mod q H A k k + m H P 0 (mod q) = = Spurious hit als q een van de priemfactoren is 19
20 Rabin-Karp Rolling hash met O(1) updates Uit te breiden naar 2D (en 3D, ) String matching in verwacht O n + mk + m sp. hits = O(n + mk) tijd Nog wel O m tijd per echte hit Veel hits = veel tijd 20
21 Matching met Eindige Automaat Eindige Automaat/Finite Automaton O(n) tijd met O m Σ preprocessing Geen kosten voor hits 21
22 Eindige Automaat Toestanden: Q Overgangen: δ: Q Σ Q 22
23 Eindige Automaat Toestanden: Q Overgangen: δ: Q Σ Q niks niks eten eten,niks eten 23
24 Constructie (formeel) m + 1 states: niks gematched, 1 gematched,, n gematched (alles) δ i, x = i + 1 als x = P[i] de grootste j i zodat P i j i 1 = P[0 j 2] en P j 1 = x 0 indien zo n j niet bestaat 24
25 Constructie (informeel) We weten dat P[0 i 1] het huidige stuk tekst matcht Toevoegen karakter x Als x = P[i] matchen we één karakter meer Anders zoeken we de langste suffix van P 0 i 1 x die ook een prefix van P is P = abbaba: als je na abbab een b ziet, is de langste suffix abbabb 25
26 DFA Matcher DFA-Match(A,P) s := 0 δ := overgangsfunctie van P for i := 0 to n-1 s := δ(s, A[i]) if s = m yield i-m+1 return 26
27 Bouwen van δ Kan in O m 3 Σ met naïef algoritme Kan ook in O m Σ Finite Automata: je kan op iedere reguliere expressie matchen O(n) tijd, O m Σ preprocessing Worst case: O m 2 preprocessing én ruimte 27
28 Knuth-Morris-Pratt Verbetering van Eindige Automaat Automaat: indien x een mismatch is, kijk welke suffix van P 0 i 1 x een prefix van P is KMP: kijk alleen naar P 0 i 1, niet naar x! In geval van mismatch schuift i niet verder 28
29 KMP Matcher KMP-Match(A,P) s := 0 π := prefixfunctie van P for i := 0 to n-1 if A[i] = P[s] s := s + 1 else if s > 0 s = π[s] i := i - 1 if s = m yield i-m+1 ; s = π[s] ; i := i - 1 return 29
30 Prefixfunctie π s = grootste j < s zodat P 0 j 1 = P[s j s 1] Opmerking 1: je kan deze j s enumereren while(j > 0) j = π[j] yield j Geeft alle j s die aan de eis voldoen 30
31 Prefixfunctie while(j > 0) j = π[j] yield j π s = grootste j < s zodat P 0 j 1 = P[s 1 j s 1] Opmerking 1: je kan deze j s enumereren Opmerking 2: splits de eis in twee delen a) P 0 j 2 = P s 2 j s 2 b) P j 1 = P[s 1] a) kun je met opmerking 1 bepalen! 31
32 Prefixfunctie ComputePI(s) j := ComputePI(s 1) while(j > 0 && P[j] P[s - 1]) j := ComputePI(j) if(p[j] P[s - 1]) return 0 return j + 1 Dynamisch Programmeren! 32
33 Prefixfunctie (iteratief) ComputePI(s) π[0] := 0 ; π[1] := 0 j := 0 for s := 2 to m 1 while(j > 0 && P[j] P[s - 1]) j = π[j] if(p[j] = P[s - 1]) j := j + 1 π[s] = j 33
34 Knuth-Morris-Pratt Matching in O(n) met O m preprocessing Eindige Automaat maar dan slimmer Automaat bekijkt elke letter 1 keer KMP vaker 34
35 Eindfeest k 18 vrienden naar feest brengen in graaf met n 5000 nodes Looptijd: 2 k poly n GEEN n k (FPT) Vrienden lopen S langzamer dan auto Ophalen op handige locaties, wachten op lopende vrienden NP-volledig 35
36 Eindfeest Gelaagde graaf: v, S, v V, S Vrienden Niet expliciet maken (O 2 k n geheugen met kleine constante) Doorzoeken met Dijkstra Wanneer heb je een kant, welke gewichten? Fruitmand. 36
37 Eindfeest Zie ook Tom s Quest uit Wybe Workshop 37
String Matching. Algoritmiek
String Matching Algoritmiek String Matching Gegeven string (haystack): aabaabbabaaba zoek patroon abba (needle) 4 algoritmen: Naïef Rabin-Karp Eindige Automaat Knuth-Morris-Pratt 2 String Matching (formeel)
Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?
Algoritmes en Priemgetallen Hoe maak je een sleutelpaar voor RSA? Het recept van RSA Kies p q priemgetallen en bepaal N = pq Kies e Z N (publieke sleutel) Bepaal d e 1 mod φ N (privésleutel) x ed x kφ
Automaten & Complexiteit (X )
Automaten & Complexiteit (X 401049) Inleiding Jeroen Keiren [email protected] VU University Amsterdam Materiaal Peter Linz An Introduction to Formal Languages and Automata (5th edition) Jones and Bartlett
Datastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 2 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Priority queue Priority queue ADT insert(q, x): voeg element x toe aan de queue maximum(q):
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
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
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:
Automaten en Berekenbaarheid
Automaten en Berekenbaarheid Bart Demoen KU Leuven 2016-2017 Les 2: 20-35 reguliere expressies NFA DFA minimalisatie Van RE naar NFA I 2/11 structureel (als algebra s) zijn RegExp en de NFA s gelijk voor
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.
Dynamisch Programmeren III. Algoritmiek
Dynamisch Programmeren III Vandaag Dynamisch programmeren met wat lastiger voorbeelden: Handelsreiziger Longest common subsequence Optimale zoekbomen Knapsack 2 - DP2 Handelsreiziger Een handelsreiziger
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:
Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de
OEFENINGEN PYTHON REEKS 1
OEFENINGEN PYTHON REEKS 1 Vraag 1: Python als een eenvoudige rekenmachine Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3) en
OEFENINGEN PYTHON REEKS 1
Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren
opgaven formele structuren deterministische eindige automaten
opgaven formele structuren deterministische eindige automaten Opgave. De taal L over het alfabet {a, b} bestaat uit alle strings die beginnen met aa en eindigen met ab. Geef een reguliere expressie voor
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
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................................
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
Inhoud eindtoets. Eindtoets. Introductie 2. Opgaven 3. Terugkoppeling 6
Inhoud eindtoets Eindtoets Introductie 2 Opgaven 3 Terugkoppeling 6 1 Formele talen en automaten Eindtoets I N T R O D U C T I E Deze eindtoets is bedoeld als voorbereiding op het tentamen van de cursus
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
Automaten & Complexiteit (X )
Automaten & Complexiteit (X 401049) Beschrijven van reguliere talen Jeroen Keiren [email protected] VU University Amsterdam 5 Februari 2015 Talen Vorig college: Talen als verzamelingen Eindige automaten:
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
Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013
Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag Januari 20 Opgave. Python Gegeven is de volgende (slechte) Python code:. def t(x): 2. def p(y):. return x*y
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
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
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
Greedy algoritmes. Algoritmiek
Greedy algoritmes Algoritmiek Algoritmische technieken Trucs, methoden, paradigma s voor het ontwerpen van algoritmen Dynamisch Programmeren Divide & Conquer Greedy 2 Greedy algoritme Bouwt de oplossing
Programmeermethoden NA
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder
Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep.
Opgaven Hash Tabellen Datastructuren, 15 juni 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht
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.
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
Variabelen 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
Datastructuren college 10
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
Progra-MEER - Algoritmiek Leuven 20 maart 2018
Progra-MEER - Leuven 20 maart 2018 Bart Demoen KU Leuven Veerle Fack UGent Frank Neven/Wim Lamotte UHasselt schooljaar 2017-2018 Vandaag... 2/33 waar staan we i.v.m. 24 april? werkblad met twee thema s
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
Groepen, ringen en velden
Groepen, ringen en velden Groep Een groep G is een verzameling van elementen en een binaire operator met volgende eigenschappen: 1. closure (gesloten): als a en b tot G behoren, doet a b dat ook. 2. associativiteit:
Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens
Algoritmes in ons dagelijks leven Leve de Wiskunde! 7 April 2017 Jacobien Carstens Wat is een algoritme? Een algoritme is een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd
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
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
Een korte samenvatting van enkele FORTRAN opdrachten
Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5
Eindige. Automaten. zie dictaatje 4.2 ch.12 Languages, Automata, Grammars 12.5 finite state automata. Dertiende college
Eindige 2 Automaten Dertiende college zie dictaatje 4.2 ch.2 Languages, Automata, Grammars 2.5 finite state automata toestand-actie-diagrammen Eindige automaten zijn voorbeelden van zgn. toestand-actie-diagrammen.
OEFENINGEN PYTHON REEKS 1
Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren
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
Acht opgaven met antwoorden (Albert Nijhof)
Acht opgaven met antwoorden (Albert Nijhof) OPGAVE 1 Hoe kun je de waarde van BASE bepalen zonder hem te veranderen? :.BASE ( -- ) BASE @ 1-.." + 1 " :.BASE ( -- ) BASE @ DUP 2/ DUP.." + " -. :.BASE (
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def
NP-Volledigheid. Wil zo snel mogelijke algoritmes om problemen op te lossen. De looptijd is polynomiaal: O n k - dat is heel erg mooi
NP-Volledigheid Wil zo snel mogelijke algoritmes om problemen op te lossen Gezien: selectie [O(n)], DFS [O(n + m)], MaxFlow [O nm n + m ], MST [O(n + m)], etc De looptijd is polynomiaal: O n k - dat is
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
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
TW2020 Optimalisering
TW2020 Optimalisering Hoorcollege 11 Leo van Iersel Technische Universiteit Delft 25 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 1 / 28 Vandaag Vraag Voor welke problemen
Arduino Zuid-Limburg Workshop 2
1 Arduino Zuid-Limburg Workshop 2 Leren door doen Juni 2016 - slides voor Arduino workshop Zuid-Limburg 2 In deze workshop Minder focus op de programmeertaal zelf Voorbeelden als basis gebruiken Tonen
Algoritmen en programmeren: deel 2 - basis
Algoritmen en programmeren: deel 2 - basis Ruud van Damme Creation date: 25 april 2005 Update: 16 november 2006, 9 september 2007 Overzicht 1 Basisbenodigdheden voor alle problemen 2 Alles in stukjes op
Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,
Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt
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
Tentamen combinatorische optimalisatie Tijd:
Tentamen combinatorische optimalisatie 26-05-2014. Tijd: 9.00-11.30 Tentamen is met gesloten boek. Beschrijf bij elke opgave steeds het belangrijkste idee. Notatie en exacte formulering is van minder belang.
(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
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
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
PYTHON REEKS 1: BASICS. Mathias Polfliet
PYTHON REEKS 1: BASICS Mathias Polfliet [email protected] EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte
Tentamen 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
Beslisbare talen (1) IN2505-II Berekenbaarheidstheorie. Beslisbare talen (2) Beslisbare talen (3) De talen: College 7
Beslisbare talen (1) College 7 Algoritmiekgroep Faculteit EWI TU Delft 10 mei 2009 De talen: A DFA = { M, w M is een DFA die w accepteert} A NFA = { M, w M is een NFA die w accepteert} E DFA = { M M is
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
Voorbeeld: Simulatie van bewegende deeltjes
Voorbeeld: Simulatie van bewegende deeltjes Simulatie - object Ruimte - objecten Deeltje - objecten Button - objecten Simulatie Samenhang van objecten sim geërfd van Form stap zelf gedeclareerd auto r1
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
Examen Algoritmen en Datastructuren III
Derde bachelor Informatica Academiejaar 2006 2007, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Fundamenten van de Informatica
Fundamenten van de Informatica Luc De Raedt Academiejaar 2006-2007 naar de cursustekst van Karel Dekimpe en Bart Demoen A.1: Talen en Eindige Automaten 1 Deel 1: Inleiding 2 Motivatie Fundamenten van de
http://www.liacs.nl/home/kosters/java/
sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/
Elliptische krommen en digitale handtekeningen in Bitcoin
Elliptische krommen en digitale handtekeningen in Bitcoin Bas Edixhoven Universiteit Leiden KNAW Bitcoin symposium Deze aantekeningen zal ik op mijn homepage plaatsen. Bas Edixhoven (Universiteit Leiden)
Automaten & Complexiteit (X )
Automten & Complexiteit (X 401049) Eigenschppen vn reguliere tlen Jeroen Keiren [email protected] VU University Amsterdm 9 Februri 2015 Reguliere tlen Vorig college: De volgende beweringen zijn equivlent:
Pythoncursus. Opdrachtenserie 3. Tanja, Koen en Marein oktober Opdracht 1 - Turtlegraphics
Pythoncursus Opdrachtenserie 3 Tanja, Koen en Marein oktober 2018 Opdracht 1 - Turtlegraphics In deze opdracht gaan we tekenen! Hiervoor gebruiken we de library turtlegraphics, waarmee je met Python een
Overzicht. Random nummer generatie. Waarom? Waarom? VU Numeriek Programmeren 2.5
Overzicht Random nummer generatie VU Numeriek Programmeren 2. Charles Bos Vrije Universiteit Amsterdam [email protected], A4 Waarom? U[, ]: LCG Test verdeling Transformeer naar andere verdelingen 23 april
