Algorithmen und Datenstrukturen"

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen""

Transkript

1 Lehrstuhl für Medieninformatik Universität Siegen Fakultät IV 9 Rekursion Version: WS 14/15 Fachgruppe Medieninformatik 9.1

2 9 Rekursion... Motivation: Rekursive Formulierung von Algorithmen führt in vielen Fällen zu sehr effizienten Algorithmenbeschreibung Zusammenhang zwischen Rekursion und Iteration Herausforderungen: Rekursive Algorithmen sind häufig nicht leicht nachvollziehbar bzw. verifizierbar Einordnung der verschiedenen Typen von Rekursionen Literatur: 1. [Ernst] Kapitel [Gumm] Kapitel [Herold] Abschnitte und (leider fehlen diverse Begriffsbezeichungen) 4. Rekursion.pdf Fachgruppe Medieninformatik 9.2

3 9.1 Einleitung Bislang kennen wir Iterationen: wiederholtes Durchlaufen einer Folge von Anweisungen Umsetzung durch Schleifen (for, while, do-while) Rekursion ist die direkte oder indirekte Zurückführung eines Problems / einer Funktion / einer zu definierenden Größe auf ein Problem / eine Funktion / eine Größe gleichen Typs. Meist vereinfachen sich bei jeder Rekursion die Parameter des Problems oder der Funktion, indem zum Beispiel die Zahlenwerte kleiner oder Zeichenketten kürzer werden. Eine erste Rekursion wurde bei formalen Sprachen (Abs. 7.4) besprochen: Nonterminale werden häufig durch sich selbst beschrieben Bemerkungen zu Rekursionen: Rekursionen können häufig elegant, kompakt und schnell implementiert werden,... sind in bestimmten Fällen äquivalent zur Iteration,... sind meist eine von mehreren Lösungsmöglichkeiten Rekursionen, die nicht abbrechen, führen zu einer Endlosschleife (unendlicher Regress). Fachgruppe Medieninformatik 9.3

4 9.1 Einleitung... Ein Mops kam in die Küche und stahl dem Koch ein Ei, da nahm der Koch den Löffel und schlug den Mops zu Brei Da kamen viele Möpse und gruben ihm ein Grab und setzten drauf nen Grabstein auf dem geschrieben stand: Ein Mops kam in die Küche und stahl dem Koch ein Ei, da nahm der Koch den Löffel und schlug den Mops zu Brei Da kamen viele Möpse und gruben ihm ein Grab und setzten drauf nen Grabstein auf dem geschrieben stand: Ein Mops kam in die Küche... Fachgruppe Medieninformatik 9.4

5 9.1 Einleitung... Erinnerung: Vollständige Induktion Vollständige Induktion: Mathematisches Beweistechnik für eine Formel oder Aussage f, die in der Regel von natürlichen Zahlen abhängt Elemente der Induktion sind Induktionsanfang: Beweis der Formel f für 0 oder 1 Induktionsannahme: Formel f gilt für alle i < n N Induktionsschritt: Beweis der Formel für n unter Rückführung auf die Induktionsannahme, d.h. auf Werte f(i) mit i < n Beispiel: Beweis der Summenformel S ( n) n n = i = ( n + 1) Zu beweisen: i= Induktionsanfang: S( 0 ) = = 0 2 Induktionsannahme (IA): Formel gilt bis n 1; n n 1 IA Induktionsschritt: S ( n) = i = n + i i= 0 i= 0 2 ( ) ( n 1) n 2n + n n n( n + 1) = n + 2 = 2 = 2 Fachgruppe Medieninformatik 9.5

6 9.1 Einleitung... Bemerkungen zur vollständigen Induktion Induktion ist das Schließen vom Speziellen auf das Allgemeine. Beispiel: Ein Naturgesetz aus einzelnen Experimenten ableiten. Methodisch sehr problematisch Deduktion ist das Schließen vom Allgemeinen auf das Spezielle. Beispiel: Aus gegebenen Naturgesetzen soll eine Prognose für ein Einzelexperiment abgeleitet werden. Dazu müssen die Gesetze nur geeignet verknüpft werden. Warum gelingt die Induktion bei natürlichen Zahlen? Sie sind per definitionem so aufgebaut, dass das Induktionsprinzip funktioniert. Man kann die natürlichen Zahlen N so definieren, dass man eine Zahl (1) vorgibt und festlegt, dass mit jeder Zahl n auch die nachfolgende n+1 in N enthalten sein soll. Fachgruppe Medieninformatik 9.6

7 9.1 Einleitung... Ein einfaches Beispiel: Fakultät Mathematische Definition der Fakultät: Iterativ: Rekursiv: n =1 2 n = i n n ( n ) n = i=1 1 1 n n > 0 = 0 Programme zur Implementierung der Fakultät: Iterativ: int factorial(int n) { int result = 1; int i; for(i=1; i<=n; i++){ result = result i; } return result; } Rekursiv: int factorial(int n) { if( n == 0 ){ // Rekursionsanker return 1; } else { // Rekursionsschritt return n factorial( n-1 ); } } Fachgruppe Medieninformatik 9.7

8 9.2 Definition von Rekursion und Rekursionstypen Bezug zum Beispiel Bestandteile zur rekursiven Berechnung der Funktion f: Rekursionsanker ( Induktionsanfang): Nicht-rekursive Angabe des Ergebnisse für bestimmte Parameter (hier: 0 = 1) Rekursionsschritt ( Induktionsschritt): Ergebnisberechnung mittels f selbst mit anderem Parameter (hier: n= n (n 1) ) Rekursionstiefe: Anzahl der rekursiven Funktionsaufrufe Bemerkungen: Ohne Rekursionsrichtung, d.h.,,versatz des Parameters im Rekursionsschritt ist die Rekursion nicht definiert. Rekursionsanker und Rekursionsrichtung müssen konsistent sein, sonst führt die Berechnung zu infiniten Regress (,,Endlosschleife ) n n = ( n ) Beispiel: Rekursionsanker für x = 0 und ansteigende Rekursionsrichtung für x > 0 Rekursionen sind häufig, aber nicht zwangsweise, über den natürlichen oder ganzen Zahlen definiert 1 1 n > 0 n = 0 Fachgruppe Medieninformatik 9.8

9 9.2 Definition von Rekursion und Rekursionstypen... Lineare Rekursion Charakterisierung: Pro Stufe genau ein rekursiver Aufruf zur Definition von f f g = h ( x, f ( r )) r bestimmt den Versatz des Parameters x P P h stellt eine Funktion dar, die einen rekursiv gewonnenen Wert,,verrechnet Bedingung P(x) ist 1 (wahr) genau dann, wenn für x ein Rekursionsanker g(x) definiert ist und f nicht erneut benötigt wird. Weitere Eigenschaften: Es entsteht eine (lineare) Sequenz von Aufrufen Beispiel Fakultät: Aufruf-Sequenz und Rückgabewerte in der Funktion factorial( ) Rekursiver Aufruf fac(3) fac(2) fac(1) fac(0) fac(4) fac(3) fac(2) fac(1) fac(0) Rückgabe: 4 fac(3) 3 fac(2) 2 fac(1) 1 fac(0) 1 Fachgruppe Medieninformatik 9.9

10 9.2 Definition von Rekursion und Rekursionstypen... Primitive Rekursion Charakterisierung: Lineare Rekursion, bei der das Funktionsargument genau um 1 verschoben wird f g = h ( x, f ( s )) P P = x + 1oder s = x 1, s Weitere Eigenschaften: Kann unmittelbar durch eine Iteration ersetzt werden (und umgekehrt) Beispiel: Fakultät Fachgruppe Medieninformatik 9.10

11 9.2 Definition von Rekursion und Rekursionstypen... Endrekursion Charakterisierung: Lineare Rekursion, bei der das Funktionsergebnis unmittelbar der Wert eines Rekursionsankers ist f g = f ( r ) P P Beachte: Das Ergebnis des Rekursionsankers g(x) wird über die Aufrufsequenz nur,,zurückgereicht Weitere Eigenschaften: ein rekursiver Aufruf der Funktion pro Stufe kein weiteres Verrechnen des Rückgabewertes Funktionswert entspricht dem Wert eines Rekursionsankers Beispiel: Eine Funktion, die angibt, ob eine Zahl n gerade ist. ( n == 0) n 1 even(n) = even( n 2) sonst Fachgruppe Medieninformatik 9.11

12 9.2 Definition von Rekursion und Rekursionstypen... Beispiel: Euklidischer Algorithmus Ziel: Berechnung des größten gemeinsamen Teilers ggt zweier Zahlen n, m Euklidischer Algorithmus: Rekursive Berechnung des ggt nach Euklid: ggt m geht auf Euklid (ca. 300 v.chr.) zurück Kommt ohne Kenntnis der Primfaktorzerlegung aus m = n ( m, n) = ggt( m, n m) m < n ggt( m n, n) m > n Beweis: Fall m = n (Rekursionsanker) klar; Fall m n : Sei ohne Beschränkung der Allgemeinheit (o.b.d.a) m < n Dann ist zu zeigen: Alle Teiler von m und n sind auch Teiler von n-m, also ( k teilt m und n) ( k teilt m und n ) (*) k N : m Wenn dies gilt, so ist insbesondere auch der ggt gleich, und die rekursive Formel ist korrekt. Zeige also noch (*). Fachgruppe Medieninformatik 9.12

13 9.2 Definition von Rekursion und Rekursionstypen... Euklidischer Algorithmus, Beweis (Teil 2): Zeige: k N : k teilt m und n (1) Wenn k die Zahlen m und n teilt, so gibt es Zahlen p, q mit Dann ist aber n-m=(q-p)k und das bedeutet, dass k auch Teiler von n-m ist, was zu beweisen war. (2) ( ) ( k teilt m und n m) m = pk, n=qk, und p<q. Wenn k die Zahlen m und n-m teilt, so gibt es Zahlen p, q mit m = pk, n-m=qk. Dann ist aber (p+q)k = pk + qk = m+(n-m) = n, und das bedeutet, dass k auch Teiler von n ist, was zu beweisen war. Fachgruppe Medieninformatik 9.13

14 9.2 Definition von Rekursion und Rekursionstypen... Beispiel: Euklidischer Algorithmus (Forts.) Programm-Code: int ggt(int a, int b) { } if ( a == b ) // Rekursionsanker return a; else if ( a < b ) // Rekursionsschritt return ggt( a, b-a ); else return ggt( a-b, b ); Beachte: Dieser rekursive Programmcode ist äußerst kompakt Aufruf-Sequenz für ggt(21, 33): ggt(21,12) ggt(9,12) ggt(9,3) ggt(6,3) ggt(3,3) ggt(21,33) ggt(21,12) ggt(9,12) ggt(9,3) ggt(6,3) ggt(3,3) Fachgruppe Medieninformatik 9.14

15 9.2 Definition von Rekursion und Rekursionstypen... Nichtlineare, baumartige Rekursion Charakterisierung: Der Rekursionsschritt beinhaltet mehr als einen rekursiven Aufruf f g = h ( x, f ( r ),, f ( r ) 1 P k P wobei k > 1 Eigenschaften: es entsteht eine baumförmige Aufrufstruktur, die umso schneller in die Breite wächst, je größer k ist Nachteil: mehrfache, rekursive Funktionsaufrufe belegen viel Arbeitsspeicher Hier: Rekursionstiefe wächst mit der Anzahl der Aufrufe exponentiell Naive Implementierung als rekursiver Algorithmus ist i.a. nicht optimal Prüfe, ob z.b. durch Speicherung von Zwischenergebnissen unnötige mehrfache Berechnungen eingespart werden können. Fachgruppe Medieninformatik 9.15

16 9.2 Definition von Rekursion und Rekursionstypen... Beispiel: Fibonacci Zahlen Definition: fib 0 = 1 fib x = 0 x = 1 ( x 1) + fib( x 2) x > 1 Erste Fibonacci-Zahlen: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,... Naive Implementierung: int fib( int n ) { if (n == 0) return 0; // Rekursionsanker else if (n == 1) return 1; // Rekursionsanker else { // Rekursionsschritt return fib( n - 1 ) + fib( n - 2 ); } } Fachgruppe Medieninformatik 9.16

17 9.2 Definition von Rekursion und Rekursionstypen... Beispiel: Fibonacci Zahlen (Forts.) Problem: Mit dieser Implementierung werden Teilergebnisse mehrfach berechnet, z.b. für fib(4) werden fib(2) und fib(0) zwei Mal und fib(1) drei Mal berechnet Aufrufbaum für fib(4) fib(4) fib(3) fib(2) fib(2) fib(1) fib(1) fib(0) fib(1) fib(0) Anzahl der Aufrufe in Ebene n in etwa 2 n bei Fibonacci (k = 2), im allgemeinen Fall k n für k Aufrufe pro Auswerteebene Abhilfe würde hier also das Speichern von Zwischenergebnissen bringen. Fachgruppe Medieninformatik 9.17

18 9.2 Definition von Rekursion und Rekursionstypen... Bemerkung: Weitere Rekursionstypen: Direkte Rekursion: Ausschließliche Verwendung der Funktion selbst bei der rekursiven Definition (trifft auf alle bisherigen Beispiele zu) Indirekte Rekursion: Rekursion verwendet weitere Funktion(en) Rechnerintern: (Rekursive) Funktionsaufrufe: Kopien von Übergabeparameter und Rücksprungadressen liegen auf dem Stack Rücksprungadresse: Fortsetzungspunkt des aufrufenden Programms Beachte: Iterative Lösung braucht diesen Speicherplatz in der Regel nicht Rekursiver Aufruf fac(3) fac(2) fac(1) fac(0) fac(3) fac(2) fac(1) fac(0) Rückgabe: 3 fac(2) 2 fac(1) 1 fac(0) Fachgruppe Medieninformatik 9.18

19 9.3 Fraktale als Beispiele rekursiver Funktionen Geometrische Fraktale Ziel: Zeichnen komplexer Muster und Geometrien Beschreibung: Vorgeben einfacher Basisgeometrien (Rekursionsanker), die rekursive durch komplexere Geometrien ersetzt werden (Rekursionsschritt) Wende geometrische Ersetzungsregeln auf entsprechende Teilgeometrien an, so lange bis eine gewünschte Rekursionstiefe erreicht ist Vorteil: Im Gegensatz zu Bildern oder expliziten Geometrien belegen die zur Fraktal-Erstellung benötigten Algorithmen sehr wenig Speicherplatz Nachteil: Die Berechnung der Fraktale ist i.a. zeitaufwändiger als das Einlesen von Bild- oder Geometriedaten aus Dateien Online-Beispiel: Fachgruppe Medieninformatik 9.19

20 9.3 Fraktale als Beispiele rekursiver Funktionen... Koch-Kurve : Rekursionstiefe 1 Rekursionstiefe 2 Rekursionstiefe 3 Rekursionstiefe 4 Fachgruppe Medieninformatik 9.20

21 9.3 Fraktale als Beispiele rekursiver Funktionen... Drachen-Kurve Rekursionstiefe 1 Rekursionstiefe 2 Rekursionstiefe 3 Rekursionstiefe 12 Fachgruppe Medieninformatik 9.21

22 9.3 Fraktale als Beispiele rekursiver Funktionen... Gewinner des POVRay Fractal Raytracing Contest (2004) Fachgruppe Medieninformatik 9.22

23 9.4 Zusammenfassung Wichtige Erkenntnisse und Inhalte dieses Abschnitts: Erinnerung an die Beweismethode der vollständigen Induktion Beispiel-Vergleich zwischen Iteration und Rekursion Elemente der Rekursion: Rekursionsanker und Rekursionsschritt, sowie deren Bezug zur Rekursionsrichtung (Gefahr des infiniten Regress) Rekursionstypen: Lineare Rekursion und primitive Rekursion als Spezialfall Endrekursion: Linear, jedoch ohne weitere Verrechnung der Rekursionsankerwerte Baumartige Rekursion: Mehr als ein Funktionsaufruf pro Ebene; i.d.r. ungeeignet zur naiven Implementierung Rechnerintern: Nutzung des Stacks für rekursive Funktionsaufrufe Beispiele aus dem Bereich der Fraktale Fachgruppe Medieninformatik 9.23

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Fortgeschrittene Rekursion Prof. Dr. Nikolaus Wulff Problematische Rekursion Mittels Rekursion lassen sich Spezifikationen recht elegant und einfach implementieren. Leider

Mehr

Algorithmen & Programmierung. Rekursive Funktionen (1)

Algorithmen & Programmierung. Rekursive Funktionen (1) Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden

Mehr

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung Informatik I: Einführung in die Programmierung 7. Albert-Ludwigs-Universität Freiburg Bernhard Nebel 31. Oktober 2014 1 31. Oktober 2014 B. Nebel Info I 3 / 20 Um zu, muss man zuerst einmal. Abb. in Public

Mehr

Induktive Beweise und rekursive Definitionen

Induktive Beweise und rekursive Definitionen Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1

Mehr

Rekursive Funktionen

Rekursive 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

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

Mehr

Speicher und Adressraum

Speicher und Adressraum Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik Rekursion kurz Einführung Die Rekursion ist ein Bauprinzip, das in vielen Dingen steckt. Wir lernen es hier kennen und experimentieren dann damit in der Igelgrafik (s.später). Es führt uns bis zu den Fraktalen.

Mehr

2. Algorithmenbegriff

2. Algorithmenbegriff 2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

Induktive Beweise und rekursive Definitionen

Induktive Beweise und rekursive Definitionen Induktive Beweise und rekursive Definitionen Vorlesung Logik in der Informatik, HU Berlin 1. Übungsstunde Beweis durch vollständige Induktion über N Aufgabe 1 Zeige, dass für alle n N gilt: n 2 i = 2 n+1

Mehr

Induktion und Rekursion

Induktion 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

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag,

Mehr

Rekursion. 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 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

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) WS 2014/15 Diskrete Strukturen Kapitel 2: Grundlagen (Beweise) 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_14

Mehr

Lösungsvorschlag Serie 2 Rekursion

Lö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

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs 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,

Mehr

Einführung in die Programmierung

Einfü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,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking

Mehr

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Ü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

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind ausgewählte Teile in Anlehnung an

Mehr

Abstrakte Algorithmen und Sprachkonzepte

Abstrakte Algorithmen und Sprachkonzepte Abstrakte Algorithmen und Sprachkonzepte Thomas Röfer Begriff des Algorithmus Algorithmenaufbau Programmiersprachliche Grundkonzepte Interative und rekursive Algorithmen Rückblick Aufbau und Funktionsweise

Mehr

Resolutionsalgorithmus

Resolutionsalgorithmus 112 Resolutionskalkül Mit dem Begriff Kalkül bezeichnet man eine Menge von syntaktischen Umformungsregeln, mit denen man semantische Eigenschaften der Eingabeformel herleiten kann. Für den Resolutionskalkül:

Mehr

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 Rekursion: Beispiele Bier trinken 8-Damen-Problem ipod Shuffle für alle Mitarbeiter Karten

Mehr

Grundlagen der Informatik I (Studiengang Medieninformatik)

Grundlagen der Informatik I (Studiengang Medieninformatik) Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: skuehn@informatik.htw-dresden.de

Mehr

1.2 Eigenschaften der ganzen Zahlen

1.2 Eigenschaften der ganzen Zahlen Lineare Algebra I WS 2015/16 c Rudolf Scharlau 13 1.2 Eigenschaften der ganzen Zahlen Dieser Abschnitt handelt von den gewöhlichen ganzen Zahlen Z und ihren Verknüpfungen plus und mal. Man kann die natürlichen

Mehr

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung Funktionale Programmierung 1 Funktionale Programmierung: Vorlesungsüberblick 1. Funktionale Programmierung Prinzipien funktionaler Programmierung Funktionale Programmierung in prozeduralen Sprachen Rekursive

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

Mehr

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Student: 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

Mehr

Algorithmen und Datenstrukturen Tafelübung 4. Jens Wetzl 15. November 2011

Algorithmen und Datenstrukturen Tafelübung 4. Jens Wetzl 15. November 2011 Algorithmen und Datenstrukturen Tafelübung 4 Jens Wetzl 15. November 2011 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Vorkurs: Mathematik für Informatiker

Vorkurs: Mathematik für Informatiker Vorkurs: Mathematik für Informatiker Teil 3 Wintersemester 2016/17 Steven Köhler mathe@stevenkoehler.de mathe.stevenkoehler.de 2 c 2016 Steven Köhler Wintersemester 2016/17 Inhaltsverzeichnis Teil 1 Teil

Mehr

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1 Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische

Mehr

Beispiel 1: Fakultät

Beispiel 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

Mehr

Beispiel: Fibonacci-Zahlen

Beispiel: 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

Mehr

1 Die Mandelbrotmenge

1 Die Mandelbrotmenge 1 Die Mandelbrotmenge In diesem Abschnitt wollen wir mathematische Aspekte der sogenannten Mandelbrotmenge beleuchten, die wir im Folgenden mit M bezeichnen wollen. 1 Ihr Name ist ihrem Entdecker Benoît

Mehr

2. Teilbarkeit. Euklidischer Algorithmus

2. Teilbarkeit. Euklidischer Algorithmus O. Forster: Einführung in die Zahlentheorie 2. Teilbarkeit. Euklidischer Algorithmus 2.1. Wir benutzen die folgenden Bezeichnungen: Z = {0, ±1, ±2, ±3,...} Menge aller ganzen Zahlen N 0 = {0, 1, 2, 3,...}

Mehr

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Rekursion. 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"

Mehr

Induktion und Rekursion

Induktion und Rekursion Mathematische Beweistechniken Vorkurs Informatik SoSe13 10. April 013 Mathematische Beweistechniken Ziel Mathematische Beweistechniken Ziel beweise, dass eine Aussage A(n) für alle n N gilt. Beispiel Für

Mehr

Programmieren I. Methoden-Special Heusch --- Ratz 6.1, Institut für Angewandte Informatik

Programmieren I. Methoden-Special Heusch --- Ratz 6.1, Institut für Angewandte Informatik Programmieren I Methoden-Special Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe: Wertkopie -By- public class MethodParameters { public

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse

Mehr

Fachwissenschaftliche Grundlagen

Fachwissenschaftliche 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

Mehr

II.3.1 Rekursive Algorithmen - 1 -

II.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 -

Mehr

1.4 Die Ackermannfunktion

1.4 Die Ackermannfunktion a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =

Mehr

Ersetzbarkeitstheorem

Ersetzbarkeitstheorem Ersetzbarkeitstheorem Die Abgeschlossenheit läßt sich auch folgendermaßen formulieren: Ersetzbarkeitstheorem Seien F und G Formeln mit F G. SeienH und H Formeln, so daß H aus H hervorgeht, indem ein Vorkommen

Mehr

A N A L Y S I S I F Ü R T P H, U E ( ) 1. Übungstest (FR, ) (mit Lösung )

A 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

Mehr

Vorlesung. Vollständige Induktion 1

Vorlesung. 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

Mehr

12. Rekursion Grundlagen der Programmierung 1 (Java)

12. Rekursion Grundlagen der Programmierung 1 (Java) 12. Rekursion Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 24. Januar 2006 Einordnung im Kontext der Vorlesung

Mehr

Informatik I Rekursion

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

Mehr

Kapitel 3. Natürliche Zahlen und vollständige Induktion

Kapitel 3. Natürliche Zahlen und vollständige Induktion Kapitel 3 Natürliche Zahlen und vollständige Induktion In Kapitel 1 haben wir den direkten Beweis, den modus ponens, kennen gelernt, der durch die Tautologie ( A (A = B) ) = B gegeben ist Dabei war B eine

Mehr

6.1 Natürliche Zahlen 6.2 Induktion und Rekursion 6.3 Ganze, rationale, reelle und komplexe Zahlen 6.4 Darstellung von Zahlen

6.1 Natürliche Zahlen 6.2 Induktion und Rekursion 6.3 Ganze, rationale, reelle und komplexe Zahlen 6.4 Darstellung von Zahlen 6. Zahlen 6.1 Natürliche Zahlen 6.2 Induktion und Rekursion 6.3 Ganze, rationale, reelle und komplexe Zahlen 6.4 Darstellung von Zahlen 6. Zahlen GM 6-1 6.1 Natürliche Zahlen Vom lieben Gott gemacht Menschenwerk:

Mehr

Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion

Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion Saskia Klaus 07.10.016 1 Motivation In den ersten beiden Vorträgen des Vorkurses haben wir gesehen, wie man aus schon bekannten Wahrheiten

Mehr

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens

Mehr

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N induktiv

Mehr

Informatik I. Informatik I Iteration vs. Rekursion. Iteration vs. Rekursion Iteration vs. Rekursion. 20. Iteration vs.

Informatik 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

Mehr

1 Potenzen und Polynome

1 Potenzen und Polynome 1 Potenzen und Polynome Für eine reelle Zahl x R und eine natürliche Zahl n N definieren wir x n := x x x... x }{{} n-mal Einschub über die bisher aufgetretenen mathematischen Symbole: Definition mittels

Mehr

Der Euklidische Algorithmus

Der Euklidische Algorithmus Euklid.nb 1 Der Euklidische Algorithmus (Euklid von Alexandria ca. 365-300 v.chr.) Realisierung in den Versionen: Subtraktionsform, Divisionsform, iterativ, rekursiv und regelbasiert Nimmt man abwechselnd

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (III) 17.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)

Mehr

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract:

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract: Spezifikation der zulässigen Parameter Bemerkungen: Bei jeder (partiellen) Funktion muss man sich überlegen und dokumentieren, welche aktuellen Parameter bei einer Anwendung zulässig sein sollen. Der Anwender

Mehr

C.3 Funktionen und Prozeduren

C.3 Funktionen und Prozeduren C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens

Mehr

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung: 2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden

Mehr

C- Kurs 04 Anweisungen

C- Kurs 04 Anweisungen C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

11. Rekursion, Komplexität von Algorithmen

11. 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

Mehr

IT-Sicherheit. Jun.-Prof. Dr. Gábor Erdélyi. Siegen, 15. November 2016 WS 2016/2017

IT-Sicherheit. Jun.-Prof. Dr. Gábor Erdélyi. Siegen, 15. November 2016 WS 2016/2017 IT-Sicherheit WS 2016/2017 Jun.-Prof. Dr. Gábor Erdélyi Lehrstuhl für Entscheidungs- und Organisationstheorie, Universität Siegen Siegen, 15. November 2016 Wiederholung Warum IT-Sicherheit? Grundlagen

Mehr

Fachwissenschaftliche Grundlagen

Fachwissenschaftliche Grundlagen Fachwissenschaftliche Grundlagen Vorlesung im Wintersemester 2011/2012, Universität Landau Roland Gunesch 9. Vorlesung Roland Gunesch (Mathematik) Fachwissenschaftliche Grundlagen 9. Vorlesung 1 / 17 Themen

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Rekursion Rekursion Neue Denkweise Wikipedia: Als Rekursion bezeichnet man den Aufruf

Mehr

Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1)

Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1) Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1) Anweisungen: Eingabeanweisungen, z.b. Eingabe: x Ausgabeanweisungen, z.b. Ausgabe: Das Maximum ist, max Die Symbole x und max werden

Mehr

31 Polynomringe Motivation Definition: Polynomringe

31 Polynomringe Motivation Definition: Polynomringe 31 Polynomringe 31.1 Motivation Polynome spielen eine wichtige Rolle in vielen Berechnungen, einerseits weil oftmals funktionale Zusammenhänge durch Polynome beschrieben werden, andererseits weil Polynome

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Grundlagen der Programmierung WS 15/16 (Vorlesung von Prof. Bothe)

Grundlagen der Programmierung WS 15/16 (Vorlesung von Prof. Bothe) Humboldt-Universität zu Berlin Institut für Informatik Grundlagen der Programmierung WS 15/16 (Vorlesung von Prof. Bothe) Übungsblatt 4: Felder und Rekursion Abgabe: bis 9:00 Uhr am 14.12.2015 über Goya

Mehr

Prof. Dr. Margarita Esponda

Prof. Dr. Margarita Esponda Die O-Notation Analyse von Algorithmen Die O-Notation Prof. Dr. Margarita Esponda Freie Universität Berlin ALP II: Margarita Esponda, 5. Vorlesung, 26.4.2012 1 Die O-Notation Analyse von Algorithmen Korrektheit

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Projekt Systementwicklung

Projekt Systementwicklung Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit

Mehr

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Diskrete Strukturen und Logik WiSe 2007/08 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Diskrete Strukturen und Logik Gesamtübersicht Organisatorisches Einführung Logik & Mengenlehre

Mehr

7. LINEARISIERUNG UND DAS DIFFERENTIAL

7. LINEARISIERUNG UND DAS DIFFERENTIAL 63 Dieses Skript ist ein Auszug mit Lücken aus Einführung in die mathematische Behandlung der Naturwissenschaften I von Hans Heiner Storrer, Birkhäuser Skripten. Als StudentIn sollten Sie das Buch auch

Mehr

3 Vom Zählen zur Induktion

3 Vom Zählen zur Induktion 7 3 Vom Zählen zur Induktion 3.1 Natürliche Zahlen und Induktions-Prinzip Seit unserer Kindheit kennen wir die Zahlen 1,, 3, 4, usw. Diese Zahlen gebrauchen wir zum Zählen, und sie sind uns so vertraut,

Mehr

4. 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. 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

Folgen und endliche Summen

Folgen und endliche Summen Kapitel 2 Folgen und endliche Summen Folgen und ihre Eigenschaften Endliche arithmetische und geometrische Folgen und Reihen Vollständige Induktion Anwendungen Folgen/endliche Summen Eigenschaften Folgen

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Kapitel 5: Dynamisches Programmieren Gliederung

Kapitel 5: Dynamisches Programmieren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

3 Vollständige Induktion

3 Vollständige Induktion 3.1 Natürliche Zahlen In den vorherigen Kapiteln haben wir die Menge der natürlichen Zahlen schon mehrfach als Beispiel benutzt. Das Konzept der natürlichen Zahlen erscheint uns einfach, da wir es schon

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..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

Mehr

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Ziel Angabe der Effizienz eines Algorithmus unabhängig von Rechner, Programmiersprache, Compiler. Page 1 Eingabegröße n n Integer, charakterisiert die Größe einer Eingabe, die

Mehr

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik SS 03 Übung 3 Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

Mehr

Vorkurs Mathematik für Informatiker. 1 Potenzen. Michael Bader, Thomas Huckle, Stefan Zimmer Oktober Kap.

Vorkurs Mathematik für Informatiker. 1 Potenzen. Michael Bader, Thomas Huckle, Stefan Zimmer Oktober Kap. 1 Potenzen Michael Bader, Thomas Huckle, Stefan Zimmer 1. 9. Oktober 2008 Kap. 1: Potenzen 1 Potenzen Definition Für reelle Zahl x R (Basis) und eine natürliche Zahl n N (Exponent): x n := x x x... x }{{}

Mehr

Rekursive Algorithmen

Rekursive Algorithmen Rekursive Algorithmen In der Mathematik sind viele Funktionen rekursiv definiert. Der Begriff der Rekursion beinhaltet, dass zur Definition einer Funktion diese selbst wieder mit benutzt wird, allerdings

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr