Informatik I Rekursion
|
|
- Annika Schmid
- vor 5 Jahren
- Abrufe
Transkript
1 Motivation Informatik I Rekursion G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Neue Denkweise eistungsfähiges Algorithmenschema Divide-and-conquer Viele Berechnungen und Datenstrukturen sind von Haus aus selbst-bezüglich: Ein Verzeichnis enthält Daten und andere Verzeichnisse Euklid's ggt Algorithmus Quicksort Verkettete Datenstrukturen Drawing Hands M. C. Escher, 948 G. Zachmann Informatik - WS 5/6 Rekursion 2 Beispiel: Größter Gemeinsamer Teiler Finde größte ganze Zahl d, die p und q teilt ggt(432, 272)= ggt(272,26) = ggt(26, 92) = ggt(92, 24) = ggt(24, ) = 24. Anwendungen. RSA Verschlüsselung Geschichte von Algorithmen Basisfall (base case) Reduktionsschritt (reduction step, converges to base case) 432 = = ggt = = 24 Beweis für Formel: p q q p % q x x x x x x x x ggt Euklid, 3 v.chr. G. Zachmann Informatik - WS 5/6 Rekursion 3 G. Zachmann Informatik - WS 5/6 Rekursion 4
2 Python Implementierung Exkurs: Turtle-Grafik def gcd( p, q ): if q == : return p return gcd(q, p%q) base case reduction step Basisfall (base case) Reduktionsschritt (reduction step, converges to base case) Einfache Beschreibung von 2D-Grafiken Idee: Schildkröte auf Blatt Papier zieht Stift hinter sich her Schildkröte kann nur wenige Befehle ausführen: Stift hoch / runter Stiftfarbe wechseln x mm nach vorne krabbeln (und Stift dabei hinter sich herziehen) sich um n Grad nach links/rechts drehen Beispiel: F: cm vorwärts (Stift unten) vorwärts : inksdrehung um 9 R: Rechtsdrehung um 9 Zeichensequenz: F F F R F G. Zachmann Informatik - WS 5/6 Rekursion 5 G. Zachmann Informatik - WS 5/6 Rekursion 6 Koch-Schneeflocke Rekursions-Baum Rekursiver Algo für Koch-Kurve der size n 2 Ordnung n:. Zeichne die Kurve der Ordnung n- 2. Drehe das Blatt um 6º n = size n = R 3. Zeichne die Kurve der Ordnung n- n = 2 n = 3 4. Drehe um -2º 5. Zeichne die Kurve der Ordnung n- 6. Drehe um 6º 7. Zeichne die Kurve der Ordnung n- def koch( n, size): if n == : Turtle.move(size) koch(n-, size) Turtle.rotate(6) koch(n-, size) Turtle.rotate(-2) koch(n-, size) Turtle.rotate(6) koch(n-, size) R R R R R R R : Rotate 6º R: Rotate -2º R R G. Zachmann Informatik - WS 5/6 Rekursion 7 G. Zachmann Informatik - WS 5/6 Rekursion 8
3 Koch-Schneeflocke Rekursiver Algo für "Koch- Schneeflocke der Ordnung n":. Zeichne Koch-Kurve der Ordnung n 2. Drehe um -2º 3. Zeichne Koch-Kurve der Ordnung n 4. Drehe um -2º 5. Zeichne Koch-Kurve der Ordnung n Koch-Schneeflocke in Python def snowflake( N, width ): height = int( width * 2. / math.sqrt(3.) ) size = width / math.pow(3., N) // create and init turtle... // draw snowflake x, y =, width * math.sqrt(3.) / 2 turtle.fly( x, y ) koch(n, size) turtle.rotate(-2) koch(n, size) turtle.rotate(-2) koch(n, size) G. Zachmann Informatik - WS 5/6 Rekursion 9 G. Zachmann Informatik - WS 5/6 Rekursion Türme von Hanoi Verschiebe alle Scheiben von linkem Stab zu rechtem Stab Jeweils darf nur eine Schreibe verschoben werden Eine Scheibe darf entweder auf leeren Stab oder auf eine größere Scheibe gesetzt werden, nicht auf kleinere Scheibe Rekursive ösung A B C Verschieben n- kleinste Scheiben auf Stab B Verschiebe größte Scheibe auf Stab C Start Ende Towers of Hanoi demo ( Edouard ucas (883) Verschieben n- kleinste Scheiben auf Stab C G. Zachmann Informatik - WS 5/6 Rekursion G. Zachmann Informatik - WS 5/6 Rekursion 2
4 Rekursionsbaum Eigenschaften der ösung der Türme von Hanoi n 3, ABC from, temp, to 2 N - Scheibenbewegungen, um N Scheiben-Problem zu lösen 2, ACB move 2 from A to B move 3 from A to C 2, BAC move 2 from B to C Kleinste Scheibe bewegt sich immer in die gleiche Richtung (bei "kreisförmiger" Anordnung der Stäbe) Es gibt auch nicht-rekursive (iterative) ösungen, ABC, CAB, BCA, ABC move from A to C move from C to B move from B to A move from A to C, ACB, BAC, ACB, ACB, BAC, CBA, ACB, BAC G. Zachmann Informatik - WS 5/6 Rekursion 3 G. Zachmann Informatik - WS 5/6 Rekursion 4 Divide-and-Conquer Beispiel: Numerische Integration Eine Algorithmentechnik (Algorithmenparadigma) Annahme: wir hätten schon eine ösung für Probleme der Größe N-. Teile Problem der Größe N auf in zwei oder mehr kleinere Probleme mit ähnlicher Struktur 2. öse die kleineren Probleme (rekursiv mit der gleichen Methode) 3. Kombiniere die ösungen zur ösung des originalen Problems Historischer Ursprung Julius Caesar ( v.chr v.chr.) "Divide et impera." Aufgabe: Integriere eine glatte Funktion f(x) für x in [a,b] Quadratur: unterteile den Abstand von a bis b in kleine Stücke, approximiere die Fläche jeden Stücks unter der Kurve, und berechne die Summe Rechteck-Regel: approximiere durch konstante Funktionen Trapez-Regel: approximiere durch lineare Funktionen Für viele Probleme gibt es elegante divide-and-conquer ösung a Rechteck Regel b x x x N Trapez Regel G. Zachmann Informatik - WS 5/6 Rekursion 5 G. Zachmann Informatik - WS 5/6 Rekursion 6
5 Python-Code für Trapez-Regel Verbesserung: Adaptive Quadratur def f(x): # zu integrierende Funktion return math.exp(-x*x/3) / math.sqrt(2*math.pi) def trapezoid(a, b, N): h = (b - a) / N sum =.5 * h * (f(a) + f(b)) for k in range(, N): sum += h * f(a + h*k) return sum # N = Anzahl der Unterteilungen des Intervals Problem der Trapez-Regel: festgelegte Anzahl äquidistanter Teilintervalle Adaptive Quadratur: veränderliche Anzahl Teilintervalle, die die Form der Kurve anpassen print trapezoid(-3., 3., ) G. Zachmann Informatik - WS 5/6 Rekursion 7 G. Zachmann Informatik - WS 5/6 Rekursion 8 Rekursive ösung Eine schlechte rekursive Funktion Rekursion: Unterteile das Intervall in zwei gleiche Stücke Berechne die Fläche jedes Stückes rekursiv iefere die Summe zurück Abbruchkriterium (Basisfall): Durch zwei versch. Quadraturverfahren die geg. Fläche approximieren Wenn fast gleich, diese Fläche liefern; sonst: Rekursion weitermachen def adaptive(a, b, eps) : area = trapezoid(a, b, ) check = trapezoid(a, b, 5) if math.abs(area - check) > eps: m = (a + b) / 2 area = adaptive(a, m) + adaptive(m, b) return area Hier: kein Basis-Fall! Analog zu unendlichen Schleifen mit for- and while- Schleifen. def ulam(x): print x if x % 2 == : return ulam(x / 2) return ulam(3 * x + ) %./ulam.py Nicht bekannt, ob für belibige Startwerte terminiert G. Zachmann Informatik - WS 5/6 Rekursion 9 G. Zachmann Informatik - WS 5/6 Rekursion 2
6 Eine zweifelhafte rekursive Funktion Hier: es gibt einen "Anti-Reduktions-Schritt" konvergiert die Folge der Parameter immer zum Basis-Fall?? def ulam(x): if x <= : return else if x % 2 == : return ulam(x / 2) return ulam(3 * x + ) Anti-Reduktions-Schritt Später: in der Berechenbarkeitstheorie wird genauer untersucht, ob wir immer feststellen können, ob eine Funktion terminiert Halte-Problem G. Zachmann Informatik - WS 5/6 Rekursion 2
Informatik I Rekursion
Informatik I Rekursion G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Motivation Neue Denkweise eistungsfähiges Algorithmenschema Divide-and-conquer Viele Berechnungen und Datenstrukturen
Mehr11. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Mathematische Rekursion. Rekursion in Java: Genauso! Unendliche Rekursion. n!
Mathematische Rekursion 11. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration, Lindenmayer Systeme Viele mathematische Funktionen sind sehr natürlich
Mehr12. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Lernziele. Mathematische Rekursion. Rekursion in Java: Genauso! n! =
Lernziele Sie verstehen, wie eine Lösung eines rekursives Problems in Java umgesetzt werden kann. Sie wissen, wie Methoden in einem Aufrufstapel abgearbeitet werden. 12. Rekursion Mathematische Rekursion,
MehrG. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:
lausthal Informatik II Divide & onquer. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Algorithmen-Design-Techniken Die wichtigsten Entwurfsverfahren für Algorithmen: 1. Divide and onquer
MehrBeispiel: Fibonacci-Zahlen
Beispiel: Fibonacci-Zahlen Fibonacci Zahlen in der Natur Unendliche Reihe: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,... Fibonacci-Kaninchen: Pinienzapfen Blumenkohl L. P. Fibonacci (1170-1250) G. Zachmann Informatik
MehrBeispiel: Fibonacci-Zahlen
Beispiel: Fibonacci-Zahlen Unendliche Reihe: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,... Fibonacci-Kaninchen: L. P. Fibonacci (1170-1250) G. Zachmann Informatik 1 - WS 05/06 Rekursion 23 Fibonacci Zahlen in der
MehrVorkurs Informatik WiSe 17/18
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 10.10.2017 Technische Universität Braunschweig, IPS Überblick Einleitung Türme von Hanoi Rekursion Beispiele 10.10.2017 Dr. Werner Struckmann
MehrRekursion. Sie wissen wie man Programme rekursiv entwickelt. Sie kennen typische Beispiele von rekursiven Algorithmen
Rekursion Sie wissen wie man Programme rekursiv entwickelt Sie kennen typische Beispiele von rekursiven Algorithmen Sie kennen die Vor-/Nachteile von rekursiven Algorithmen Einführung 2 von 40 Rekursiver
MehrVorkurs Informatik WiSe 16/17
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrMathematische Rekursion
Rekursion Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die Funktion erscheint in ihrer eigenen Definition. Mathematische Rekursion o Viele mathematische
MehrFHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt
Inhalt 1. Einführung 1. Beispiel: Fakultät 2. Beispiel: Zahlenfolge 3. Beispiel: Formale Sprache 4. Unterschied Iteration/Rekursion 2. Rekursive Methoden 1. Beispiel: Fakultät 2. Beispiel: "Türme
MehrRekursion. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/ WS17/18 Divide et Impera im Römischen
MehrRekursion. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Divide et Impera im Römischen
MehrEinführung in die Programmierung Wintersemester 2017/18
Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion
MehrEinführung in die Programmierung Wintersemester 2010/11
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion
MehrII.3.1 Rekursive Algorithmen - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.3.1 Rekursive Algorithmen -
MehrKapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Rekursion: Technik Prof. Dr. Günter Rudolph Fakultät
Mehr5. Numerische Differentiation. und Integration
5. Numerische Differentiation und Integration 1 Numerische Differentiation Problemstellung: Gegeben ist eine differenzierbare Funktion f : [a,b] R und x (a,b). Gesucht sind Näherungen für die Ableitungen
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Rekursive Prozeduren zu charakterisieren. Terminierung von rekursiven Prozeduren mit Hilfe von geeigneten Abstiegsfunktionen
Mehr2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
MehrGültigkeitsbereich. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2016/
Gültigkeitsbereich Funktionen Erinnerung: Python ist eine interpretierte Sprache! Funktionen müssen definiert sein, bevor sie aufgerufen werden können. T. Neckel Einführung in die wissenschaftliche Programmierung
Mehr5. Numerische Differentiation. und Integration
5. Numerische Differentiation und Integration 1 Numerische Differentiation Problemstellung: Gegeben ist eine differenzierbare Funktion f : [a,b] R und x (a,b). Gesucht sind Näherungen für die Ableitungen
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2009/0 : Technik vs. Iteration Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund 2 Definition (einfache,
Mehr9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion
Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen
MehrEinführung in die Informatik I
Einführung in die Informatik I LOOP Programme, rekursive Funktionen und der Turm von Hanoi Prof. Dr. Nikolaus Wulff Berechenbarkeit Mitte des 20. Jahrhunderts beantworteten Pioniere, wie Alan M. Turing
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mariano Zelke Datenstrukturen 2/19 Das Teilfolgenproblem: Algorithmus A 3 A 3 (i, j bestimmt den Wert einer maximalen Teilfolge für a i,..., a j. (1 Wenn
MehrG. Zachmann Clausthal University, Germany
lausthal Informatik II Suchen lausthal University, ermany zach@in.tu-clausthal.de Problemstellung egeben ist eine Menge von Datensätzen {A1,...,An} esucht sind die Datensätze, deren Schlüssel (Key) = A[i].key
MehrBeispiel 1: Fakultät
16. Rekursion Beispiel 1: Fakultät Rekursive Definition der Fakultät (Mathematik) n! = 1 falls n=0 n*(n-1)! falls n>0 Programmierung mittels einer rekursiven Funktion in C++ double fakultaet(int n) if
MehrC++ - Kontrollstrukturen Teil 2
C++ - Kontrollstrukturen Teil 2 Reiner Nitsch 8417 r.nitsch@fbi.h-da.de Schleife und Verzweigung kombiniert SV initialisieren while(b1) if(b2) w f V1 V2 SV Richtung Ziel verändern Wichtiger Baustein vieler
MehrProgrammieren lernen mit Groovy Rekursion Rekursion und Iteration
Programmieren lernen mit Groovy Rekursion Seite 1 Rekursion Rekursion Ursprung lat. recurrere ~ zurücklaufen rekursive Definition Definition mit Bezug auf sich selbst Beispiel Fakultätsfunktion n! 0! =
MehrAlgorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)
Über-/Rückblick Algorithmenbegriff: Berechenbarkeit Turing-Maschine RAM µ-rekursive Funktionen Zeit Platz Komplexität Algorithmentechniken Algorithmenanalyse (Berechnung der Komplexität) Rekursion Iteration
MehrAuswählen nach Rang (Selektion)
Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)
MehrAlgorithmen und Datenstrukturen"
Lehrstuhl für Medieninformatik Universität Siegen Fakultät IV 9 Rekursion Version: WS 14/15 Fachgruppe Medieninformatik 9.1 9 Rekursion... Motivation: Rekursive Formulierung von Algorithmen führt in vielen
Mehr4 Rekursionen. 4.1 Erstes Beispiel
4 Rekursionen Viele Algorithmen besitzen sowohl eine iterative als auch eine rekursive Lösung. Sie unterscheiden sich darin, dass die iterative Version meist einen etwas längeren Kode besitzt, während
MehrAlgorithmen und Datenstrukturen"
Lehrstuhl für Medieninformatik Universität Siegen Fakultät IV 9 Rekursion Version: WS 14/15 Fachgruppe Medieninformatik 9.1 9 Rekursion... Motivation: Rekursive Formulierung von Algorithmen führt in vielen
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:
MehrRekursive Funktionen und ihre programmtechnische Umsetzung
Rekursive Funktionen und ihre programmtechnische Umsetzung Klaus Kusche, Juli 2012 Inhalt Die Idee und ihre Programmierung Die Abarbeitung zur Laufzeit Die Speicherung der Daten Praktisches & Theoretisches
MehrInformatik I. Informatik I Iteration vs. Rekursion. Iteration vs. Rekursion Iteration vs. Rekursion. 20. Iteration vs.
Informatik I 1. Februar 2011 20. Informatik I 20. Jan-Georg Smaus 20.1 Albert-Ludwigs-Universität Freiburg 1. Februar 2011 Jan-Georg Smaus (Universität Freiburg) Informatik I 1. Februar 2011 1 / 31 Jan-Georg
MehrDas Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 7. Entrekursivierung
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 7 Entrekursivierung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040 Linz Rekursive
MehrKlausur zu Informatik II
Prof. G. Zachmann Dipl.-Inf. D. Mainzer TU Clausthal Institut für Informatik Klausur zu Informatik II Sommersemester 2010 V/X/MMX, 14 00 15 00 Name:......................... Matrikelnummer:.........................
MehrJAVA - Rekursion
Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Allgemeines Fakultät Fibonacci Türme von Hanoi Übungen Informatik 1 Folie 2 Ein Objekt
MehrMi, 21. Mai, ab 12:30 Uhr, in E23 (OH14) Dann ab 14:30 Uhr: Motivation: Gegeben: hier: später: Aufgabe:
Kap. 4: Suchen in Datenmengen Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 0. VO DAP2 SS 2008 5. Mai 2008 Ankündigung Mentoring Mi, 2. Mai, ab 2:30 Uhr, in
MehrLösungsblatt zur Vorlesung. Kryptanalyse WS 2009/2010. Blatt 5 / 9. Dezember 2009 / Abgabe bis spätestens 23. Dezember 2009, 10 Uhr (vor der Übung)
Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May Mathias Herrmann, Alexander Meurer Lösungsblatt zur Vorlesung Kryptanalyse WS 2009/2010 Blatt 5 / 9. Dezember
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben
MehrDas Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge
Mehr1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:...
ALP II Objektorientierte Programmierung SS 2012 Prof. Dr. Margarita Esponda 1. Teilklausur Name:... Vorname:... Matrikel-Nummer:... Ich bin mit der Veröffentlichung der Klausurergebnisse mit Matrikel-Nummer
MehrInformatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
MehrInhalt Kapitel 2: Rekursion
Inhalt Kapitel 2: Rekursion 1 Beispiele und Definition 2 Partialität und Terminierung 3 Formen der Rekursion Endständige Rekursion 4 Einbettung 29 Beispiele und Definition Rekursion 30 Man kann eine Funktion
MehrAverage-Case-Komplexität
Exkurs Average-Case-Komplexität Das eben gestellte Problem kann man auch effizienter lösen Algorithmus prefixaverages2(x) s = 0.0 for i in range(0,n): s += X[i] A[i] = s / (i + 1) return A O(1) n O(1)
MehrDivide and Conquer. Teile-und-herrsche. Ferd van Odenhoven. 7. Oktober 2010
7. Oktober 2010 eile und Herrsche eile-und-herrsche (Divide-and-conquer) Divide and Conquer Ferd van Odenhoven Fontys Hogeschool voor echniek en ogistiek Venlo Software ngineering 7. Oktober 2010 OD/FHB
MehrInformatik II Sortieren
lausthal Sortieralgorithmen Informatik II Sortieren Preprocessing fürs Suchen sind für kommerzielle Anwendungen häufig die Programmteile, die die meiste Rechenzeit verbrauchen viele raffinierte Methoden
MehrInformatik II Sortieren
lausthal Informatik II Sortieren. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Sortieralgorithmen Preprocessing fürs Suchen sind für kommerzielle Anwendungen häufig die Programmteile, die
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen
MehrZunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:
Der Groß-O-Kalkül Zunächst ein paar einfache "Rechen"-Regeln: G. Zachmann Informatik 1 - WS 05/06 Komplexität 22 Additionsregel Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Zu beweisen: nur das
MehrInhalt. 3. Spezielle Algorithmen
Inhalt 0. Rechner und Programmierung für Kommunikationstechniker und Mechatroniker 1. Algorithmen - Wesen, Eigenschaften, Entwurf 2. Darstellung von Algorithmen mit Struktogrammen und Programmablaufplänen
Mehr3.2. Divide-and-Conquer-Methoden
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch
MehrClausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.
lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik 2 - SS 06 Bäume 2 Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy
MehrINFORMATIK FÜR BIOLOGEN
Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie
MehrInformatik I. Jan-Georg Smaus. Iteration vs. Rekursion. Iterativer Algorithmus Beweis der Korrektheit Python- Programm Zusammenfassung
20. Albert-Ludwigs-Universität Freiburg 1. Februar 2011 1 / 31 2 / 31 Wir haben am Beispiel von der Fakultätsfunktion und den Methoden für verlinkte Listen gesehen, dass man manche Probleme sowohl mit
MehrHallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Zahlentheorie, Arithmetik und Algebra II Benjamin Fischer Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Lineare Rekursion BigInteger Chinesischer
MehrVorlesung Programmieren
Vorlesung Programmieren 11 Rekursion Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrRekursive Funktionen
Um Rekursion zu verstehen, muss man vor allem Rekursion verstehen. http://www2.norwalk-city.k12.oh.us/wordpress/precalc/files/2009/05/mona-lisa-jmc.jpg Rekursive Funktionen OOPM, Ralf Lämmel Was ist Rekursion?
MehrÜbersicht. Datenstrukturen und Algorithmen. Die Teile-und-Beherrsche-Methode. Übersicht. Vorlesung 3: Rekursionsgleichungen (K4)
Datenstrukturen und Algorithmen Vorlesung 3: (K4) 1 e für rekursive Algorithmen Prof. Dr. Erika Ábrahám 2 Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/
MehrStack. Seniorenseminar Michael Pohlig
Stack Seniorenseminar 21.06.2013 Michael Pohlig (pohlig@kit.edu) Übersicht 1. Axiomatik eins Kellers und seine Software- Realisierung 2. Bedeutung der Rekursion in der Mathematik 3. Rekursive Programmierung.
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach
MehrDiskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)
WS 2015/16 Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15
Mehr3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.
Das Suchproblem Gegeben Menge von Datensätzen. 3. Suchen Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle Jeder Datensatz hat einen Schlüssel k. Schlüssel sind vergleichbar: eindeutige Antwort auf
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
Mehr10. Sortieren III. Untere Schranken für das vergleichsbasierte Sortieren, Radix- und Bucketsort
280 10. Sortieren III Untere Schranken für das vergleichsbasierte Sortieren, Radix- und Bucketsort 281 10.1 Untere Grenzen für Vergleichbasiertes Sortieren [Ottman/Widmayer, Kap. 2.8, Cormen et al, Kap.
MehrStudent: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:
Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung
Mehrdamit hätten wir nach Ende der Schleife: "a[0 n-1] enthält nur Elemente aus a[0 n-1], aber in sortierter Reihenfolge".
Korrektheit Invariante: a[0 k-1] enthält nur Elemente aus a[0 k-1], aber in sortierter Reihenfolge Terminierung: Die Schleife endet mit k=n def insertionsort(a): for k in range( 1, len(a) ): while i >
MehrRekursive Funktionen
Um Rekursion zu verstehen, muss man vor allem Rekursion verstehen. http://www2.norwalk-city.k12.oh.us/wordpress/precalc/files/2009/05/mona-lisa-jmc.jpg Rekursive Funktionen OOPM, Ralf Lämmel Was ist Rekursion?
MehrEinführung in die Informatik I
Einführung in die Informatik I Berechenbarkeit und Komplexität Prof. Dr. Nikolaus Wulff Berechenbarkeit Im Rahmen der Turingmaschine fiel zum ersten Mal der Begriff Berechenbarkeit. Ein Funktion f heißt
MehrProgrammieren 1 C Überblick
Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
Mehr12.2 Gauß-Quadratur. Erinnerung: Mit der Newton-Cotes Quadratur. I n [f] = g i f(x i ) I[f] = f(x) dx
12.2 Gauß-Quadratur Erinnerung: Mit der Newton-Cotes Quadratur I n [f] = n g i f(x i ) I[f] = i=0 b a f(x) dx werden Polynome vom Grad n exakt integriert. Dabei sind die Knoten x i, 0 i n, äquidistant
Mehr11. Rekursion, Komplexität von Algorithmen
11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv
MehrGrundlagen der Programmierung 2 (1.B)
Grundlagen der Programmierung 2 (1.B) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 20. April 2011 Aufrufhierarchie und Rekursive Definitionen f, g, f i seien Haskell-definierte
MehrQuad-trees. Benjamin Niedermann Übung Algorithmische Geometrie
Übung Algorithmische Geometrie Quad-trees LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann 02.07.2014 Übersicht Übungsblatt 11 - Quadtrees Motivation:
MehrInhalt. 3. Spezielle Algorithmen
Inhalt 0. Rechner und Programmierung für Kommunikationstechniker und Mechatroniker 1. Algorithmen - Wesen, Eigenschaften, Entwurf 2. Darstellung von Algorithmen mit Struktogrammen und Programmablaufplänen
MehrÜbersicht. Einführung Funktionen in Java Rekursion. 4 Funktionen (in Java) Christian Rössl EinfInf 2017: Funktionen 1
Übersicht Christian Rössl EinfInf 2017: Funktionen 1 4 Funktionen (in Java) Einführung Funktionen in Java Rekursion Übersicht Christian Rössl EinfInf 2017: Funktionen 2 4 Funktionen (in Java) Einführung
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015
Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter
Mehr4. Fortgeschrittene Algorithmen 4.1 Rekursion 4.2 Daten und Datenstrukturen 4.3 Bäume
4. Fortgeschrittene Algorithmen 4.1 Rekursion 4.2 Daten und Datenstrukturen 4.3 Bäume 4.1-1 4.1 Rekursion Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines
MehrÜbersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Algorithmus Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-5/dsal/ 2 7.
MehrSoftware Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge
MehrMehrdimensionale Numerische Integration mittels hierarchischer Basen
Mehrdimensionale Numerische Integration mittels hierarchischer Basen JobSis 004 1 October 004 Darko Zikic zikic@cs.tum.edu institut für informatik technische universität münchen WAS? Hierarchische Basen
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise
MehrZahlentheorie, Arithmetik und Algebra I. Katharina Falk Medizintechnik Master
Zahlentheorie, Arithmetik und Algebra I Katharina Falk Medizintechnik Master 13.06.2016 Gliederung Modulare Arithmetik Rechenregeln Schnelle Potenzierung Gemeinsamer Teiler Erweiterter Euklid Primzahlen
MehrALPII Objektorientierte Programmierung
LPII Objektorientierte Programmierung für das 5. Übungsblatt 0 Prof. Dr. Margarita Esponda Sieb des Eratosthenes. Jahrhundert v. hr. Das Sieb des Eratosthenes ist ein sehr bekannter lgorithmus, der für
Mehr11. Rekursion. - Wiederholung von Anweisungen: durch Iteration und Rekursion - Anwendungsfälle der Rekursion
11. Rekursion 258 K. Bothe, PI1, WS 2000/01 259 ' ( ) - Wiederholung von Anweisungen: durch Iteration und Rekursion - Anwendungsfälle der Rekursion - induktiv definierte Funktionen - rekursive Problemlösungen
MehrB6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden
Algorithmen und Datenstrukturen 11. April 2018 B6. Binäre Suchbäume a Algorithmen und Datenstrukturen B6. Binäre Suchbäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 11. April 2018 a Folien basieren
MehrSFZ FN Sj. 12/13. Python 4 Grundlagen. W.Seyboldt. Python, SFZ FN, Sj 12/13
SFZ FN Sj. 12/13 Python 4 Grundlagen 1 Python, SFZ FN, Sj 12/13 Python Methoden: def teilt(t, n): ''' Kommentar. ''' Berechnungen return var Statt der Variable var bei Return kann auch eine Methode oder
Mehr