String Matching. Algoritmiek
|
|
|
- Frederik Bosman
- 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 Practicum 3: Uitbreiding naar 2D 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 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 23
24 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 24
25 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 25
26 Bouwen van δ Kan in O m 3 Σ Kan ook in O m Σ met naïef algoritme Finite Automata: je kan op iedere reguliere expressie matchen O(n) tijd, O m Σ Worst case: O m 2 preprocessing preprocessing én ruimte 26
27 Knuth-Morris-Pratt Verbetering van Eindige Automaat Ook in O n tijd zoeken Maar met maar O m preprocessing en ruimte 27
28 Knuth-Morris-Pratt Automaat: indien x een mismatch is, kijk welke (langste) suffix van P 0 s 1 x een prefix van P is KMP: kijk alleen naar P 0 s 1, niet naar x! In geval van mismatch bekijken we x nog een keer 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 String Matching Naïef Rabin-Karp met Rolling Hash Eindige Automaat Knuth-Morris-Pratt Nog beter mogelijk: Boyer-Moore O(n/m) 35
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
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
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
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):
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:
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
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
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................................
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:
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
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
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
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
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
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
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
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
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
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
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
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
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
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 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
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
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
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
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.
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
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.
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
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
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 (
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)
Programmeermethoden. 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
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
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:
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
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
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
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:
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
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
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
Taaltechnologie. Januari/februari Inhoud
Taaltechnologie Januari/februari 2002 1 Finite state............................................... 4 1.1 Deterministic finite state automata.................... 4 1.2 Non-deterministic finite state automata................
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
Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie
Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes
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
Automaten en Berekenbaarheid
Automaten en Berekenbaarheid Bart Demoen KU Leuven 2016-2017 Les 3: 36-54 Myhill-Nerode relaties; regulier pompen Myhill-Nerode equivalentieklassen in Σ I 2/10 belangrijk te verstaan: een equivalentie-relatie
compileren & interpreteren - compileren: vertalen (omzetten) - interpreteren: vertolken
compileren & interpreteren - compileren: vertalen (omzetten) - interpreteren: vertolken - belangrijkste punten: - ontleden van de programmatekst - bijhouden van de datastructuren Data Structuren en Algoritmen
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:
Hoofdstuk 5: Functies voor getallen en teksten
Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, maart 2001 Hoofdstuk 5: Functies voor getallen en teksten
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
Lab Webdesign: Javascript 3 maart 2008
H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen
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
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
opgaven formele structuren tellen Opgave 1. Zij A een oneindige verzameling en B een eindige. Dat wil zeggen (zie pagina 6 van het dictaat): 2 a 2.
opgaven formele structuren tellen Opgave 1. Zij A een oneindige verzameling en B een eindige. Dat wil zeggen (zie pagina 6 van het dictaat): ℵ 0 #A, B = {b 0,..., b n 1 } voor een zeker natuurlijk getal
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
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
Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:
Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen
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
Klanken 2. Dit college. Automaten: Talen. Colleges en hoofdstukken (let op verranderingen) Fonologie met eindige automaten en transducers
Dit college Klanken 2 Fonologie met eindige automaten en transducers Colleges en hoofdstukken (let op verranderingen) 4 mei: Klanken (Fonetiek, fonologie) Chapter 7 6 mei: Klanken 2 (eindige automaten
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,
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
Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.
Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege. Kijk het huiswerk van je collega s na en schrijf de namen van de nakijkers linksboven en het totaalcijfer rechts onder de namen
Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2
Controle structuren De algemene vorm: 1 bloks door middel van indentatie Keuze Herhaling if expressie :...... In de volgende vorm is het else gedeelte weggelaten: if expressie :... Het if keuze- of conditioneel
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
Het programma ELGAMAL
Het programma ELGAMAL Gerard Tel Universiteit Utrecht, Departement Informatica 21 oktober 2005 Dit boekje is een inhoudelijke beschrijving van het programma ELGAMAL dat door Gerard Tel is geschreven voor
De wiskunde achter de Bitcoin
De wiskunde achter de Bitcoin Bas Edixhoven Universiteit Leiden NWD, Noordwijkerhout, 2015/01/31 Deze aantekeningen zal ik op mijn homepage plaatsen. Bas Edixhoven (Universiteit Leiden) De wiskunde achter
