Konzepte und Methoden der Programmierung Lösungen P. Fierz / FS 2012
|
|
- Krista Esser
- vor 7 Jahren
- Abrufe
Transkript
1 Kapitel 1 Rekursion Alle Programme finden Sie im mitgelieferten zip-file. Aufgabe 1.1 [Fakultät] Für diese Übung brauchen Sie die Klassen Factorial Skelett und MyTimer. n! ist rekursiv folgendermassen definiert: 0! = 1 n! = n n 1! für n > 0 1. Implementieren Sie die Methode facrecursiv, die n! rekursiv berechnet.. Implementieren Sie die Methode faciterativ, die n! iterativ berechnet. 3. Berechnen Sie mit beiden Methoden n! für n = beachten Sie die Overflows nicht und messen Sie die Zeit mit MyTimer. 4. Kommentieren Sie die Resultate. Die Messung ergibt, dass die iterative Lösung etwas effizienter ist. Der Unterschied ist aber gering. Man kann daraus den Schluss ziehen, dass rekursive Implementationen durchaus berechtigt sind. 5. Implementieren Sie die beiden Methoden facrecursivbig und faciterativbig, die n! berechnen aber mit dem Java-Type BigInteger. 6. Wiederhohlen Sie die Zeitmessung für die beiden neuen Methoden. Auch in diesem Fall ist die iterative Lösung etwas schneller aber nur gering. Factorial.java Aufgabe 1. [Potenzen] Für diese Übung brauchen Sie die Klassen Power Skelett und MyTimer. Die Potenzfunktion ist rekursiv folgendermassen definiert: x 0 = 1 x n = x x n 1 1-1
2 1. Implementieren Sie die Potenzfunktion power rekursiv.. Implementieren Sie die Potenzfunktion fastpower rekursiv. Benutzen Sie die Tatsache, dass x n = x n gilt, um die Implementation zu verschnellern. 3. Berechnen Sie mit beiden Methoden 5 n für n = und messen Sie die Zeit mit MyTimer. Die Messung ergibt, dass fastpower viel schneller ist als power. 4. Wie viele rekursive Aufrufe benötigen power und fastpower um x n zu berechnen? power: Die Funktion wird n mal rekursiv aufgerufen. Dabei werden also n Multiplikationen durchgeführt. fastpower: Da bei mindestens jedem zweiten Aufruf n durch dividiert wird ist die Anzahl rekursiver Aufrufe und Multiplikationen maximal log n. Power.java Aufgabe 1.3 [Minimum und Maximum] Für diese Übung brauchen Sie die Klasse Min- Max Skelett. 1. Implementieren Sie eine rekursive Methode minmaxrec um in einem Array von n ganzen Zahlen das Minimum und das Maximum zu finden. Ihre Methode soll ein Paar min, max zurückgeben. Führen Sie einen Zähler ein, der die Anzahl Vergleiche von Arrayelementen zählt. Tip: Bestimmen Sie das Minimum und das Maximum in der linken und rechten Hälfte des Arrays und betimmen Sie aus diesen Teilresultaten das Resultat.. Berechnen Sie für n wie viele Vergleiche von Arrayelementen Ihre Methode benutzt und vergleichen Sie das Resultat mit dem Zähler aus Ihrem Programm. Nehmen Sie an, dass n eine Zweierpotenz ist n = r. Dazu nehmen wir an, dass n die Form n = k hat. Wir können nun die Anzahl Vergleiche V k zählen. Bei jedem Durchgang rufen wir die Prozedur minmaxrek zwei mal auf, aber mit einem halbierten Array. Anschliessend werden noch zwei Vergleiche angestellt. Falls k = 1 ist, so brauchen wir nur einen Vergleich. Dies führt zu der folgenden Rekursionsformel. V 1 = 1 V k = V k 1 + Die Lösung dieser Rekursionsformel ist relativ einfach: V k = V k 1 + = V k = V k = k 1 + k 1 i=1 i = n + k 1 = 3n 1 1-
3 3. Bestimmen Sie die maximale und minimale Anzahl Vergleiche von Arrayelementen in der iterativen Lösung minmax. Anzahl Vergleiche im Durchschnitt: Der Array wird einmal durchlaufen. Der erste Vergleich wird immer ausgeführt. Der zweite Vergleich nur dann, wenn der erste fehlschlägt also im Durchschnitt nur in der Hälfte der Fälle. Es sind also n 1 + n 1 = 3n 3 Vergleiche nötig. Im besten Fall sind n 1 Vergleiche nötig. Dies ist der Fall, wenn im Loop immer nur der erste Vergleich durchgeführt wird. Dies ist nur dann der Fall, wenn die Elemente alle verschieden und im Array sortiert abgelegt sind. Im schlechtesten Fall sind n 1 Vergleiche notwendig. Dies ist der Fall, wenn der zweite Vergleich immer ausgeführt wird und dies wiederum ist der Fall, wenn das Maximum im Element 0 des Arrays gespeichert ist. MinMax.java Aufgabe 1.4 [Fibonacci-Zahlen] Für diese Übung brauchen Sie die Klasse Fibonacci Skelett und MyTimer. Die Fibonacci-Zahlen sind rekursiv folgendermassen definiert: F 0 = 0 F 1 = 1 F n = F n + F n 1 für n 1. Implementieren Sie die Methode fibonaccirec um die Fibonacci-Zahlen rekursiv zu berechnen.. Geben Sie die Fibonacci-Zahlen von aus mit Zeitmessung. Was ist Ihre Beobachtung? Am Anfang werden die Zahlen schnell berechnet aber mit wachsendem n wird die Berechnung immer langsamer. Es gilt in etwa die Formel ZeitfibonacciRecn 3 ZeitfibonacciRecn 1 3. Schätzen Sie grob ab, wie viele rekursive Aufrufe die Methode braucht. Wir können den Zeitaufwand T n folgendermassen berechnen: T n = { 1 für n < T n 1 + T n + 1 für n Diese Funktion sieht ja aus wie die Fibonacci Funktion. Es gilt: Beweis: n 0 : T n > F n
4 Inductionsanfang: T 0 = 1, F 1 = 1 T 0 F 1 und T 1 = 1, F = 1 T 1 F Inductionsannahme: T n F n + 1 für n = 0, 1,... k Induktionsschluss: T k + 1 = T k + T k F k F k + 1 nach Induktionsannahme = F k nach Definition von F F k + Wir müssen also bestimmen, wie gross F n ist. Die Fibonacci Zahlen können ohne Beweis nach der folgenden Formel berechnet werden: F n = 1 n n Der zweite Term ist ca. 0.6 und geht für grosse n gegen 0. Der erste Term ist ca Das heisst, F wächst exponentiel man schreibt: 3 n F n = O Damit ist also gezeigt, dass der Zeitaufwand zur rekursiven Berechnung von Fibonacci exponentiell wächst. 4. Implementieren Sie die Methode fibonaccimem um die Fibonacci-Zahlen rekursiv zu berechnen. Benutzen Sie dabei einen Array F[] in dem die schon berechneten Werte zwischengespeichert werden. 5. Die Fibonacci-Zahlen können auch mit Hilfe der folgenden Matrix berechnet werden: Es gilt die Formel: M n = M = Fn+1 F n F n F n 1 Die Multiplikation von x Matritzen ist folgendermassen definiert: a11 a 1 b11 b 1 a11 b 11 + a 1 b 1 a 11 b 1 + a 1 b a 1 a b 1 b = a 1 b 11 + a b 1 a 1 b 1 + a b 1.3 Die Multiplikation ist zwar nicht kommutativ aber sie ist assoziativ. Implementieren Sie die Methode fibonaccimat mit Hilfe der Formeln 1.1, 1. und Vergleichen Sie das Laufzeitverhalten der drei Methoden fibonacciiter, fibonaccimem und fibonaccimat. Am schnellsten ist fibonaccimat. fibonaccimem und fibonacciiter sind in etwa gleich schnell. 1-4
5 Fibonacci.java Aufgabe 1.5 [Substrings] 1. Implementieren Sie mit Hilfe von Rekursion die Klasse SubstringGenerator, die alle Substrings eines Strings generiert.. Implementieren Sie mit Hilfe von Rekursion die Klasse SubsetGenerator, die alle Teilmengen einer gegebenen Menge generiert. 3. Überlegen Sie, wie alle Permutationen eines Strings iterativ gefunden werden können. SubstringGenerator, SubsetGenerator Aufgabe 1.6 [Türme von Hanoi] Für diese Übung brauchen Sie die Klasse TowerOfHanoi. Das Spiel Türme von Hanoi besteht aus drei Stäben A, B und C, auf die mehrere gelochte Scheiben gelegt werden, alle verschieden groß. Zu Beginn liegen alle Scheiben auf Stab A, der Größe nach geordnet, mit der größten Scheibe unten und der kleinsten oben. Ziel des Spiels ist es, den kompletten Scheiben-Stapel von A nach C zu versetzen. Bei jedem Zug darf die oberste Scheibe eines beliebigen Stabes auf einen der beiden anderen Stäbe gelegt werden, vorausgesetzt, dort liegt nicht schon eine kleinere Scheibe. Folglich sind zu jedem Zeitpunkt des Spieles die Scheiben auf jedem Feld der Größe nach geordnet. 1. Implementieren Sie das Spiel Türme von Hanoi rekursiv.. Wie viele Züge sind notwendig um ein Turm der Höhe n von Stab A nach Stab B zu bringen. Um einen Turm der Höhe n von Stab A nach Stab C zu verschieben wird zuerst der Turm der Höhe n 1 nach B verschoben anschliessend wird die grösste Scheibe von A nach C gebracht und zuletzt der Turm der Höhe n 1 von B nach C verschoben. Dies ergibt die folgende rekursive Gleichung für M Anzahl Moves: Mn = Wir lösen nun diese Rekursive Gleichung auf: { 0 für n = 0 Mn für n > 0 Mn = Mn = Mn = 4 Mn = 4 Mn = 8 Mn = n M0 + n 1 i=0 i = n 1 3. Begründen Sie wieso Ihre Lösung funktioniert. Wir können dies mit vollständiger Induktion über die Höhe h des Turms beweisen. 1-5
6 Induktionsanfang: Für h = 1 hat es nur eine Scheibe. Diese kann von jedem Stab nach den beiden anderen Stäben bewegt werden. Induktionsannahme: Ein Turm der Höhe h kann von einem Stab nach den anderen beiden bewegt werden. Induktionsschluss: Aus der Annahme, dass ein Turm der Höhe h bewegt werden kann, muss man beweisen, dass ein Turm der höhe h + 1 bewegt werden kann. Nach Induktionsannahme können die Scheiben 1... h von Stab A nach Stab B bewegt werden. Dabei spielt die Scheibe h + 1 keine Rolle siehe Abbildung. A B C h h+1 Anshliessend kann die Scheibe h + 1 nach C bewegt werden. Nun können nach Induktionsvoraussetzung die Scheiben 1... h von B nach C bewegt werden. TowerOfHanoi, HanoiComponent, HanoiFrame, HanoiModel Aufgabe 1.7 [Binäre Sequenz] Die Folge W n von Bit-Strings ist folgendermassen definiert: W 0 = ɛ W 1 = 0 W n wird erzeugt indem in W n 1 jede 0 durch 001 und jede 1 durch 0 ersetzt wird. einige Glieder der Sequenz: W = 001 W 3 = W 4 = Problem: Gesucht ist der Wert des N-ten bits im kleinsten Bit-String der Folge W n, dessen Länge grösser oder gleich N ist. 1. Überlegen Sie ob das Problem besser rekursiv oder iterativ gelöst werden kann.. Schreiben Sie ein Programm, das das Problem auch für sehr grosse N löst. Für sehr grosse N z.bsp N = kann der String nicht aufgebaut werden. Wir müssen zuerst suchen, ob der String W n rekursiv aus den vorhergehenden Strings der Folge kreiert werden kann. Behauptung: W n = W n 1W n 1W n für n 3 Beweis: Induktionsanfang: W 3 = W W W 1 = stimmt. Induktionsannahme: W n = W n 1W n 1W n für n = 0, 1,... k Induktionsschluss: 1-6
7 Wir konstruieren nun W k + 1 mit Hilfe der Konstruktionsvorschrift 0 durch 001 und 1 durch 0 in W k ersetzen. Nach Induktionsvoraussetzung ist aber nach dem Ersetzen erhalten wir also W k = W k 1W k 1W k W k + 1 = W kw kw k 1 Aus der gefundenen Formel kann man leicht die Längen Ln der Strings W n bestimmen und in einem Array ablegen. Nun benutzen wir den folgenden Rekursiven Ansatz um das N te Bit des Strings W n zu bestimmen. Falls N <= 3 gib das entsprechende Bit des String 001 zurück. falls N > Ln 1 bestimme das Bit N Ln 1 im String W n. falls Ln 1 < N Ln 1 bestimme das Bit N Ln 1 im String W n 1. falls N Ln 1 bestimme das Bit N im String W n 1. BinSequence.java Aufgabe 1.8 [Syntax Bäume] Für diese Übung brauchen Sie die Klassen BinTree und ArithTokenizer. Beixxspiele für die Verwendung sind in der Klasse TreeExample und ArithTokenizer vorhanden. 1. Schreiben Sie ein Programm, das aus einem Arithmetischen Ausdruck den entsprechenden Syntaxbaum konstruiert. Die Ausdrücke enthalten Integerkonstanten, Javaidentifier, die Operatoren +,-,*,/ mit der üblichen Priorität und die Klammern,. Traversieren Sie anschliessend den Baum in Pre-, In- und Postorder und geben Sie den Inhalt der Knoten aus siehe TreeExample. 3. Evaluieren Sie den Ausdruck mit Hilfe des konstruierten Baumes Identifier haben dabei den Wert 0. ArithTree.java, ArithTokenizer.java, BinNode.java, BinTree.java 1-7
2. 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
MehrGrundlagen: Algorithmen und Datenstrukturen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und
MehrWir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt.
Abschätzung für die Rekursion von SELECT Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt. Wir nehmen erst einmal an, dass eine Konstante d existiert,
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
Mehr= =
9. Januar 2007 Arbeitsblatt 9 Übungen zu Mathematik I für das Lehramt an der Grund- und Mittelstufe sowie an Sonderschulen I. Gasser, H. Strade, B. Werner WiSe 06/07 19.12.06 Präsenzaufgaben: 1. Zu Beginn
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
Mehr( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen
MehrStand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften
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
Mehr3. rekursive Definition einer Folge
3. rekursive Definition einer Folge In vielen Fällen ist eine explizite Formel für das n-te Glied nicht bekannt, es ist hingegen möglich, aus den gegebenen Gliedern das nächste Glied zu berechnen, d.h.
MehrKapitel 1. Grundlegendes
Kapitel 1 Grundlegendes Abschnitt 1.4 Vollständige Induktion Charakterisierung der natürlichen Zahlen Die Menge N 0 = {0, 1, 2, 3,...} der natürlichen Zahlen läßt sich wie folgt charakterisieren: 1. 0
MehrNumerische Verfahren und Grundlagen der Analysis
Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 26 1. Folgen R. Steuding (HS-RM)
MehrVollständige Induktion. Analysis I. Guofang Wang. Universität Freiburg
Universität Freiburg 26.10.2011 Vollständige Induktion Wir unterbrechen jetzt die Diskussion der Axiome der reellen Zahlen, um das Beweisverfahren der vollständigen Induktion kennenzulernen. Wir setzen
MehrFachwissenschaftliche Grundlagen
Fachwissenschaftliche Grundlagen Vorlesung im Wintersemester 2011/2012, Universität Landau Roland Gunesch 8. Vorlesung Roland Gunesch (Mathematik) Fachwissenschaftliche Grundlagen 8. Vorlesung 1 / 25 Themen
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale
MehrGrundlagen: Algorithmen und Datenstrukturen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen
MehrHausaufgaben. zur Vorlesung. Vollständige Induktion. 1. Beweist folgende Formeln (zu beweisen ist nur die Gleichheit mit dem. i=1 (4 + i)!
WS 015/1 Hausaufgaben zur Vorlesung Vollständige Induktion 1. Beweist folgende Formeln zu beweisen ist nur die Gleichheit mit dem! -Zeichen : a 5 + + 7 + 8 + + 4 + n n 4 + i! nn+9 b 1 + + 9 + + n 1 n 1
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
MehrInstitut fu r Informatik
Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013/14 Aufgabenblatt 5 2. Dezember
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
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
MehrInformatik II Übung 10. Pascal Schärli
Informatik II Übung 0 Pascal Schärli pascscha@student.ethz.ch 09.0.0 Was gibts heute? Best-of Vorlesung: Teile und Herrsche Türme von Hanoi Mergesort O-Notation Vorbesprechung: U0A, - Mergesort U0A Türme
MehrÜbung zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein
MehrÜbung zur Vorlesung Diskrete Strukturen I
Technische Universität München WS 00/0 Institut für Informatik Aufgabenblatt 10 Prof. Dr. J. Csirik 7. Januar 00 randt & Stein Übung zur Vorlesung Diskrete Strukturen I Abgabetermin: Tutorübungen am 16.
MehrVollständige Induktion
30. September 008 Gliederung 1 3 4 Gliederung 1 3 4 Gliederung 1 3 4 Gliederung 1 3 4 Die Peano Axiome für die Menge der Natürlichen Zahlen N I. 0 ist eine natürliche Zahl, d.h. 0 N. II. Jede natürliche
MehrGrundbegriffe der Informatik Musterlösung zu Aufgabenblatt 2. Jeder Frosch ist glücklich, wenn alle seiner Kinder quaken können.
Aufgabe 2.1 (3 Punkte) Gegeben sind folgende Aussagen: Grundbegriffe der Informatik Musterlösung zu Aufgabenblatt 2 Jeder Frosch ist glücklich, wenn alle seiner Kinder quaken können. Alle grünen Frösche
MehrInduktion und Rekursion
Induktion und Rekursion Induktion und Rekursion Sommersemester 2018 Ronja Düffel 16. März 2018 Induktion und Rekursion > Mathematische Beweistechniken > Vollständige Induktion Der kleine Gauß Induktion
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
MehrEin Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet.
3.6 Rekursion Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet. Klassisches Beispiel: Berechnung von n! (Fakultät
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:
Mehr: das Bild von ) unter der Funktion ist gegeben durch
% 1.3 Funktionen Seien und Mengen nennt man Funktion oder Abbildung. Beachte: Zuordnung ist eindeutig. Bezeichnungen: : Definitionsbereich : Bildbereich (Zielmenge) von Der Graph einer Funktion: graph!
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.
MehrVollständige Induktion
30. September 008 Gliederung 1 3 4 Die Peano Axiome für die Menge der Natürlichen Zahlen N I. 0 ist eine natürliche Zahl, d.h. 0 N. II. Jede natürliche Zahl hat genau einen Nachfolger d.h. n : (n N! n
Mehr(2 n + 1) = (n + 1) 2
Schülerzirkel Mathematik Fakultät für Mathematik. Universität Regensburg Induktion 0 +... Aufgaben und Lösungen Aufgabe 1 Summen von ungeraden Zahlen ). 1. Zeige durch vollständige Induktion, dass für
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
MehrFolgen und Funktionen in der Mathematik
Folgen und Funktionen in der Mathematik Anhand von einigen exemplarischen Beispielen soll die Implementierung von mathematischen Algorithmen in C/C++ gezeigt werden: Reelle Funktionen in C/C++ Diese wird
MehrALP I Induktion und Rekursion
ALP I Induktion und Rekursion WS 2012/2013 Vollständige Induktion (Mafi I) Die Vollständige Induktion ist eine mathematische Beweistechnik, die auf die Menge der natürlichen Zahlen spezialisiert ist. Vorgehensweise:
MehrSchleifeninvarianten. Dezimal zu Binär
Schleifeninvarianten Mit vollstandiger Induktion lasst sich auch die Korrektheit von Algorithmen nachweisen. Will man die Werte verfolgen, die die Variablen beim Ablauf eines Algorithmus annehmen, dann
Mehr(X Y )(a) = X (a) Y (a).
Aufgabe Teilaufgabe a) Seien X, Y zwei Zufallsvariablen, so definieren wir das Produkt dieser Zufallsvariablen X Y wie folgt: (X Y )(a) = X (a) Y (a). Teilaufgabe b) Gegenbeispiel: Betrachten wir uns folgenden
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 07..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum
Mehrn(n + 1)(2n + 1). 6 j 2 = Hinweis: Setze für n IN n(n + 1)(2n + 1) 6 A(n) : und wähle die Bezeichnung s n := n (2j + 1) = n2 (2j + 1) = (n + 1)2
15. Dezember 2006 Arbeitsblatt 9 Übungen zu Mathematik I für das Lehramt an der Grund- und Mittelstufe sowie an Sonderschulen I. Gasser, H. Strade, B. Werner WiSe 06/07 19.12.06 Präsenzaufgaben: 1. Zu
MehrSeite 1. Folgen. Folgen. Klaus Messner,
Seite 1 Klaus Messner, klaus_messner@web.de Seite 2 Begriffe Die Schreibweise stellt eine Folge dar. Die a i nennt man glieder und i ist der Index bzw. die Nummer eines speziellen glieds. In den Lehrbüchern
MehrEin sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.
2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert
MehrExponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element
Problemstellung Banale smethode : das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element a n = } a a a {{ a } H n (schreiben ab jetzt a n statt a n ) Hinweis:
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
MehrTechnische Universität München Zentrum Mathematik Mathematik 1 (Elektrotechnik) Übungsblatt 1
Technische Universität München Zentrum Mathematik Mathematik 1 (Elektrotechnik) Prof. Dr. Anusch Taraz Dr. Michael Ritter Übungsblatt 1 Hausaufgaben Aufgabe 1.1 Zeigen Sie mit vollständiger Induktion:
Mehr1 Folgen und Stetigkeit
1 Folgen und Stetigkeit 1.1 Folgen Eine Folge ist eine durchnummerierte Zusammenfassung von reellen Zahlen. Sie wird geschrieben als (a 1, a 2, a 3,...) = (a n ) n N. Es ist also a n R. Der Index n gibt
MehrExponentiation: das Problem
Problemstellung Exponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element a n = } a a a {{ a } H n (schreiben ab jetzt a n statt a n ) Hinweis:
MehrWiederholung. Divide & Conquer Strategie
Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in
MehrFolgen und Reihen. 1. Folgen
1. Folgen Aufgabe 1.1. Sie kennen alle die Intelligenztests, bei welchen man zu einer gegebenen Folge von Zahlen die nächsten herausfinden soll. Wie lauten die nächsten drei Zahlen bei den folgenden Beispielen?
MehrAlgorithmen und Datenstrukturen 1-5. Seminar -
Algorithmen und Datenstrukturen 1-5. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Outline 5.+6. Übungsserie: 5 Aufgaben, insgesamt 40 Punkte A17 Baum-Traversierung
Mehr9 Minimum Spanning Trees
Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne
Mehr1 Fibonacci-Zahlen und Teilbarkeit
3. Juli 2002 Fabian Meier Fibonacci-Zahlen und Teilbarkeit Dies ist das Skript zu dem Vortrag, den ich auf der Sommerakademie 200 und 2002 gehalten habe. Fehler bitte an folgende Adresse: an@fabianmeier.de..
MehrGrundbegriffe der Informatik Musterlösung zu Aufgabenblatt 1
Grundbegriffe der Informatik Musterlösung zu Aufgabenblatt 1 Aufgabe 1.1 ( Punkte) Schreiben Sie die Definitionen von Injektivität und Surjektivität einer Funktion als prädikatenlogische Formeln auf. Lösung
MehrVorlesung. Vollständige Induktion 1
WS 015/16 Vorlesung Vollständige Induktion 1 1 Einführung Bei der vollständigen Induktion handelt es sich um ein wichtiges mathematisches Beweisverfahren, mit dem man Aussagen, die für alle natürlichen
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
MehrGrundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt
U N S A R I V E R S A V I E I T A S N I S S Grundzüge von Algorithmen und Datenstrukturen, WS /6: Lösungshinweise zum 3. Übungsblatt Christian Hoffmann, Fabian Bendun Aufgabe 3. (a) Sei j i + = n die Größe
MehrMaple-Praktikum für Lehramt Blatt 3 Dieses Blatt wird in Kalenderwoche 18 (ab 30. April) testiert.
Maple-Praktikum für Lehramt 2018 - Blatt 3 Dieses Blatt wird in Kalenderwoche 18 (ab 30. April) testiert. Aufgaben: 8 > restart; Ein wichtiges Konzept in der Analysis sind Grenzwerte von Folgen. ÜBUNG
MehrA N A L Y S I S I F Ü R T P H, U E ( ) 1. Übungstest (FR, ) (mit Lösung )
Institut für Analysis und Scientific Computing TU Wien W. Auzinger WS 05/6 A N A L Y S I S I F Ü R T P H, U E (03.088). Übungstest (FR, 6..05) (mit Lösung ) Aufgabe. a ) Wandeln Sie die periodische Dezimalzahl
Mehr3.3 Optimale binäre Suchbäume
3.3 Optimale binäre Suchbäume Problem 3.3.1. Sei S eine Menge von Schlüsseln aus einem endlichen, linear geordneten Universum U, S = {a 1,,...,a n } U und S = n N. Wir wollen S in einem binären Suchbaum
Mehrggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe.
ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe. Das heißt, um den ggt von zwei 1000-Bit-Zahlen zu ermitteln,
MehrAlgebraische und arithmetische Algorithmen
Kapitel 1 Algebraische und arithmetische Algorithmen 1.1 Das algebraische Berechnungsmodell Struktur: Körper (oder Ring) mit den Operationen +,,, (/) Eingabe: endliche Folge von Zahlen Ausgabe: endliche
MehrBemerkung: der goldene Schnitt ϕ ist die positive Lösung der Gleichung: x 2 = 1 + x
Rekursive Definition der Fibonacci-Zahlen Erste Werte f 0 = 0, f 1 = 1, f n = f n 1 + f n 2 (n 2) n 0 1 2 3 4 5 6 7 8 9 10... 25... f n 0 1 1 2 3 5 8 13 21 34 55... 75025... Exakte Formel (de Moivre, 1718)
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
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 4: Wörter (und vollständige Induktion) Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Oktober 2008 1/29 Überblick Wörter Wörter Das leere Wort Mehr zu
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
MehrAlgorithmen und Datenstrukturen 04
(17. Mai 2012) 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 O-Kalkül Allgemein Wichtige Formeln
MehrTestprüfung (so könnte ein Teil der Prüfung aussehen)
Universität Stuttgart WS 2004/2005 Fakultät 5, Institut FMI Dowertill + Schmid EfidI 1 Zusatzkurs 3. März 2005 Bearbeitungszeit 120 min Testprüfung (so könnte ein Teil der Prüfung aussehen) Zur Beachtung:
MehrTheoretische Informatik SS 03 Übung 5
Theoretische Informatik SS 03 Übung 5 Aufgabe 1 Im Buch von Schöning ist auf S. 106-108 beschrieben, wie eine Turing-Maschine durch ein GOTO-Programm simuliert werden kann. Zeigen Sie, wie dabei die Anweisungen
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
Mehr4. Übungsblatt zur Mathematik II für Inf, WInf
Fachbereich Mathematik Prof Dr Streicher Dr Sergiy Nesenenko Pavol Safarik SS 010 11 15 Mai 4 Übungsblatt zur Mathematik II für Inf, WInf Gruppenübung Aufgabe G13 (Basistransformation) ( ) 15 05 Die lineare
Mehr2. Symmetrische Gruppen
14 Andreas Gathmann 2 Symmetrische Gruppen Im letzten Kapitel haben wir Gruppen eingeführt und ihre elementaren Eigenschaften untersucht Wir wollen nun eine neue wichtige Klasse von Beispielen von Gruppen
MehrLösungsvorschlag Serie 2 Rekursion
(/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma
Mehr3.3 Laufzeit von Programmen
3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,
MehrÜbungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13
Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13 Sven Grothklags University of Paderborn 10. Juli 2006 Sven Grothklags (University of Paderborn) DuA Übungsblatt 13 10. Juli 2006 1
MehrEinführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung Sebastian Küpper Redundanz Rekursiver Lösungen Rekursion kann elegante Bescheibungen zur Problemlösung ergeben
MehrInformatik II Übung 8
Informatik II Übung 8 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 25.4.2018 Carina Fuss 25.4.2018 1 Übung 8 Nachbesprechung Übung 7 Vorbesprechung Übung 8 binäre Suche Backtracking anhand vom Rucksackproblem
Mehrb liegt zwischen a und c.
2 DIE ANORDNUNGSAXIOME 5 (2.4) a, b, c R : (a < b 0 < c) ac < bc Monotoniegesetz der Multiplikation Bezeichnungen a > b : b < a (> wird gelesen: größer als ) a b : a < b oder a = b a b : a > b oder a =
Mehrist (oder besser Abspalten von Linearfaktoren beschäftigen. Zu einem beliebigen Körper K betrachten wir die Menge (j,k) N N j+k=n
8. Polynomringe Das Umgehen mit Polynomen, d.h. mit Ausdrücken der Form a 0 + a 1 x + a 2 x 2 +... + a n x n ist aus der Schule vertraut, falls die Koeffizienten a 0,..., a n ganze oder rationale oder
MehrSerie 4 2 = 10. ) ist). Dann gilt für alle n n 0
Serie 4. Aufgabe 336 Punkte) Gegeben seien zwei reelle Zahlenfolgen durch a n : 0 n, n N b n : n n, n N Bestimmen Sie die Grenzwerte a bzw. b der Folgen a n ) n N bzw. b n ) n N. Geben Sie jeweils zu gegebenem
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?
Mehr1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen Ideen zur Bestimmung der Länge einer Liste: 1. Verwalte ein globales Attribut int laenge. Fügt man ein Element zur Liste oder löscht es, wird
MehrAlgorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8
ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1
Mehr3. Vortrag: Arithmetische Relationen und Gödelisierung
3. Vortrag: Arithmetische Relationen und Gödelisierung 1. Arithmetische und arithmetische Mengen und Relationen 2. Verkettung von Zahlen 3. Gödelisierung Arithmetische und arithmetische Mengen und Relationen
MehrHM I Tutorium 2. Lucas Kunz. 3. November 2016
HM I Tutorium 2 Lucas Kunz 3. November 2016 Inhaltsverzeichnis 1 Theorie 2 1.1 Reelle Zahlen.................................. 2 1.2 Intervalle..................................... 2 1.3 Beträge.....................................
MehrAlgorithmen und Datenstrukturen
Technische Universität München SoSe 2017 Fakultät für Informatik, I-16 Lösungsblatt 4 Dr. Stefanie Demirci 31. Mai 2017 Rüdiger Göbl, Mai Bui Algorithmen und Datenstrukturen Aufgabe 1 Komplexität Berechnung
MehrInformatik II Übung 2
Informatik II Übung 2 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 7.3.2018 Carina Fuss 7.3.2018 1 Übersicht Tipps zu Eclipse Nachbesprechung Übung 1 Vorbesprechung Übung 2 Wurzelbäume Sortieralgorithmus
MehrVollständige Induktion
Seite 1 Klaus Messner, klaus_messner@web.de Seite 2 Problem: Problem Man hat eine Aussage (z.b. eine Formel) und soll zeigen, dass diese Aussage für alle natürlichen Zahlen gilt. Beispiel: Es soll gezeigt
MehrFibonacci-Zahlen und goldener Schnitt
Fibonacci-Zahlen und goldener Schnitt Suche eine Darstellung der Form F n = x n für reelle Zahl x > 0. Aus der definierenden Gleichung folgt sofort x 2 = x + 1. Dann liefert die p-q-formel: x 1,2 = 1 2
Mehr5 Bäume. 5.1 Suchbäume. ein geordneter binärer Wurzelbaum. geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt:
5 Bäume 5.1 Suchbäume Sei ein geordneter binärer Wurzelbaum. Sei Abbildung der Knotenmenge eine in eine vollständig geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt: Falls sortiert ist,
MehrStrukturelle Rekursion und Induktion
Kapitel 2 Strukturelle Rekursion und Induktion Rekursion ist eine konstruktive Technik für die Beschreibung unendlicher Mengen (und damit insbesondere für die Beschreibung unendliche Funktionen). Induktion
MehrInduktion und Rekursion
Induktion und Rekursion Induktion und Rekursion Vorkurs Informatik Theoretischer Teil WS 013/14. Oktober 013 Vorkurs Informatik WS 013/14 1/1 Vollständige Induktion Vorkurs Informatik WS 013/14 /1 Ziel
MehrLineare Algebra I. Voraussetzung: Sei A ein kommutativer Ring und eine Kongruenzrelation auf A. a b a n b n.
Universität Konstanz Wintersemester 2009/2010 Fachbereich Mathematik und Statistik Lösungsblatt 5 Prof Dr Markus Schweighofer 02122009 Aaron Kunert / Sven Wagner Lineare Algebra I Lösung 51: Voraussetzung:
Mehr1 Das Prinzip der vollständigen Induktion
1 1 Das Prinzip der vollständigen Induktion 1.1 Etwas Logik Wir nennen eine Formel oder einen Satz der Alltagssprache eine Aussage, wenn sie wahr oder falsch sein kann. Die Formeln 2 = 3, 2 4, 5 5 sind
Mehr2.2 Allgemeine (vergleichsbasierte) Sortierverfahren
. Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen
Mehr