Algorithmen und Computerzahlen

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Computerzahlen"

Transkript

1 Kapitel 2 Algorithmen und Computerzahlen Für die Formulierung von Lösungsverfahren, die auf einem Computer realisiert werden sollen, bedient man sich mehr oder minder eines Werkzeugs, dass Algorithmus genannt wird. Hier skizzieren wir, worauf es bei Algorithmen ankommt, und geben erste Beispiele. Die zuletzt betrachtete Struktur Graphen ist beim Studium von Algorithmen von Bedeutung. Bei der Realisierung von Algorithmen auf dem Computer haben wir mit Computerzahlen zu rechnen. Sie genügen nicht immer den bekannten Rechenregeln, da sie diskret auf einem endlichen Teil des Zahlenstrahls verteilt sind. 2.1 Algorithmen Ein Computer ist ein Werkzeug zur Verarbeitung und Speicherung von Information. Um ihn zu nutzen, ist er mit Verarbeitungsvorschriften zu füttern. Wir formulieren solche Vorschriften in der Regel unter dem Stichwort Algorithmus. Ein Algorithmus 1 für eine vorgegebene bestimmte Art von Aufgaben ist eine endliche Abfolge von wohldefinierten, ausführbaren Vorschriften, die bei Abarbeitung, ausgehend von einem Eingangszustand (Input) nach einer endlichen Anzahl von Verarbeitungsschritten einen Ausgangszustand (Output) bestimmen, der als Lösung der durch den Eingangszustand charakterisierten Aufgabe angesehen werden kann. Algorithmen sind unabhängig von einer konkreten Abbildung 2.1: AL Khwarizmi Programmiersprache und einem konkreten Computertyp, auf denen sie ausgeführt werden, zu formulieren. Algorithmen stehen im Zentrum der Informatik, der Numerischen und der Diskreten Mathematik. Ein Algorithmus, der einen gewissen Kultstatus beanspruchen kann, ist der euklidische Algorithmus; wir werden ihn noch kennnenlernnen. Wir nutzen einen Algorithmus zur Bestimmung des PageRank einer Web Seite, wenn wir die Suchmaschine google nutzen. Wir finden Algorithmen auch sonst im Alltag vor, wenn wir etwa einen Kuchen backen: Backrezepte sind, wenn sie gut aufgeschrieben sind, Algorithmen für den Prozess des Kuchenbackens. 1 Die Bezeichnung leitet sich aus dem Namen Al Khwarizmi (Al Khwarizmi,780? 850?), einem der bedeutensten Mathematiker des anfangenden Mittelalters, ab. 13

2 Beispiel Betrachte folgende Liste von Anweisungen: EIN: Natürliche Zahl n. step 1 k := 1,a := n. step 2 Ist a { = 1, dann gehe zu AUS. 3a + 1 falls a ungerade step 3 a := a/2 falls a gerade step 4 k := k + 1, gehe zu step 2. AUS: Mit k die Länge der erzeugten Zahlenfolge. Die Rechenschritte erklären sich selbst: ausgehend von n wird eine Folge von natürlichen Zahlen erzeugt, eine so genannte Collatz/Uhlam/Warring-Folge. Ist dies ein Algorithmus? NEIN, denn es ist nicht sichergestellt, dass die Abfrage Ist a = 1, dann gehe zu AUS irgendwann zur Beendigung führt. ABER: Bisher hat man keine natürliche Zahl gefunden, bei der die obige Liste von Anweisungen nicht endet. Glaubt man dieser Beobachtung nicht, solte man eine Vorsichtsmaßnahme (Abbrechkriterium) einbauen, die sicherstellt, dass nur endlich oft der Schritt step 3 angesprungen wird. Unterschiedliche Algorithmen können entworfen werden zur Lösung ein und derselben Aufgabe. Leistungsunterschiede lassen sich herausarbeiten, wenn man ihren Aufbau und ihre Wirkungsweise analysiert. Fragestellungen dafür sind: Entwurf von Algorithmen: Wie soll ein Algorithmus zur Lösung einer bestimmten Aufgabe aussehen? Komplexität: Wie läßt sich der Aufwand, der betrieben werden muss, um eine Problemklasse von Aufgaben zu lösen, bestimmen/abschätzen? Berechenbarkeit: Gibt es Aufgaben, für die kein (schneller) Algorithmus existiert? Korrektheit: Wie läßt sich nachweisen, ob ein vorliegender Algorithmus die Aufgabe korrekt löst? Robustheit/Zuverlässigkeit: Wie groß ist die Problemklasse von Aufgaben, die der Algorithmus löst? Genauigkeit: Was ist die Qualität der Lösung, wenn numerisches Rechnen nötig ist? Hauptziel der Analyse ist die Effizienzuntersuchung und die Entwicklung effizienter(er) Algorithmen. Diese Analyse sollte aber rechnerunabhängig durchgeführt werden. Dazu benötigt man ein geeignetes Rechnermodell. Solche Modelle stehen zur Verfügung! Wir wollen hier nicht darauf eingehen. Analyseuntersuchungen stützt man auf die Ermittlung des Rechenaufwands, ausgedrückt durch die Anzahl von elementaren Operationen. Hierbei kann man drei Ansätze unterscheiden: Worst-case-Komplexität: Dies ist eine obere Schranke für den Aufwand in Abhängigkeit vom Input. Mittlere Komplexität: Dies ist eine obere Schranke für den Aufwand in Abhängigkeit vom Input bei gewissen Annahmen über das Auftreten des Inputs in der Problemklasse. 14

3 Untere Komplexität: Hierunter versteht man die Ermittlung unterer Schranken für den zu betreibenden Aufwand. Diese Ansätze können rechnerunabhängig und a-priori erfolgen, d.h. ohne den Algorithmus an einem Beispiel zu testen. Unter einer a-posteriori Analyse versteht man das Testen des Algorithmus an Aufgaben mit (hinreichend) großem Input. 2.2 Programme und Programmiersprachen Die konkrete Ausführung eines Algorithmus nennt man einen Prozess, die Einheit, die den Prozess ausführt, ist ein Prozessor. Beim Kuchenbacken ist der Algorithmus das Rezept, der Prozess die Abarbeitung des Rezepts, der Prozessor der Koch. Hier denken wir natürlich an den Prozessor Computer. Um eine Analyse des Ablaufs eines Algorithmus auf diesem Prozessor vornehmen zu können, ist ein geeignetes Modell für den Computer (Maschinenmodell) bereitzuhalten. Die Informatik studiert u.a. die Turing-Maschine und die Random-Access- Maschine (RAM), welche in gewissem Sinne sogar äquivalent sind. Die Analyse von Algorithmen auf einem abstrakten Niveau ist eine Disziplin der Informatik und/oder mathematischen Informatik. Die Hardware-Komponenten eines Computers sind Zentraleinheit (CPU) Speicher (Memory) Ein- Ausgabegeräte (Input, Output Devices) Die Merkmale, die einen Computer bezüglich Hardware kennzeichnen sind Geschwindigkeit, Speichergröße, Zuverlässigkeit, Kosten, Vernetzbarkeit. Die Ausführung eines Algorithmus auf einem Prozessor setzt voraus, dass der Computer den Algorithmus interpretieren können muss, d.h. er muss verstehen, was jeder Abarbeitungsschritt bedeutet, die jeweilige Operation ausüben können. Dies leisten die Programmiersprachen. Die Algorithmen werden damit in Programmen aufgeschrieben; die einzelnen Schritte heißen nun (Programm )Anweisung, Befehl. Bei einfachen Programmiersprachen (Maschinensprachen) kann jede Anweisung direkt vom Computer interpretiert werden. Da nur elementare Operationen damit erfasst werden, muss man sehr lange Programme schreiben. Zur Vereinfachung der Programmierung wurden höhere Programmiersprachen entwickelt. Programme in solchen Programmiersprachen können nicht direkt durch den Computer interpretiert werden, sie werden durch Übersetzungsprogramme in die Maschinensprache überführt. Der Übergang von Maschinensprachen zu höheren Programmiersprachen ist fließend. Es gibt eine ganze Hierarchie von Programmiersprachen: Basic, Fortran Algol Pascal, C, C++, Java Java, Python,... Auf Computern kann man Programme auf Vorrat für bestimmte Aufgaben ablegen. Diese Sammlung von Programmen nennt man Software. Man unterscheidet 15

4 Anwendungssoftware (Textverarbeitungssoftware, Statistiksoftware,...) Systemsoftware (Betriebssystem, Editor, Compiler,...) Besonderen Stellenwert nehmen Software-Pakete ein wie Maple, Mathematica, Derive, Matlab, R, Cinderella, die alle eine spezielle Ausrichtung haben: symbolisches Rechnen die ersten drei, numerisches Rechnen Matlab, statistisches Rechnen R, geometrisches Rechnen das letzte. 2.3 Sortieren Sei M eine endliche Menge mit n Elementen und versehen mit einer Ordnung. Sortieren heißt, die Elemente von M so anzuordnen, dass sie bzgl. der Ordnung eine aufsteigende Elementfolge bilden. Sortierverfahren werden benötigt etwa bei: Ordnung im Bücherregal, Einordnen von Schlüsseln im Werkzeugkasten, Ordnen der erhaltenen Karten beim Skatspiel, Sortieren von Dateien der Größe nach. Gesichtspunkte für die Leistungsfähigkeit eines Sortierverfahrens sind: Schnelligkeit. Wieviele Rechenoperationen (Vergleiche, Umstellen in einer Liste) in Abhängigkeit von n sind nötig? Dieser Aufwand wird Laufzeitkomplexität des Verfahrens genannt. Speicherplatz. Im allgemeinen kann man sich die Elemente der Menge abgelegt in Fächern vorstellen. Beim Sortieren kann es sinnvoll sein, Zusatzfächer zu benutzen. Der Bedarf an Fächern in Abhängigkeit von n ist die Speicherplatzkomplexität des Verfahrens. Sei nun eine Menge M = {a 1,...,a n } vorgegeben. Wir denken uns die Elemente a 1,...,a n jeweils einzeln in einer Liste (Feld von Fächern) abgelegt. Wir sortieren diese Liste, indem wir die Objekte in den Fächern irgendwie solange austauschen, bis sie angeordnet in den Fächern liegen. Sortieren durch Auswählen (Selection sort). Hier geht man folgendermaßen vor: Finde das kleinste Element und tausche es gegen das an der ersten Stelle befindliche Element (1. Schleife). Fahre in dieser Weise jeweils auf dem Rest des Feldes, das noch nicht sortiert ist fort (i te Schleife). Man stellt leicht fest, dass in der i ten Schleife n i Vergleiche und eventuell ein Austausch anfallen: Wegen n n (n i) = j = 1 2 ((1 + + n 1) + (n )) = 1 n(n 1) (2.1) 2 i=1 j=1 gilt für die Komplexität: Es fallen etwa n 2 /2 Vergleiche und etwa n Austausche an. Auf den Aufwand n/2 bei den Vergleichen und beim Austauschen kann man für große n verzichten; etwa bedeutet diese Vernachlässigung, wir schreiben dafür meist. Hierzu ein Beispiel, wobei hier die Elemente die Buchstaben des Alphabets in ihrer alphabetischen Ordnung sind. Anwendung von Selection sort auf unser Beispiel EXAMPLE ergibt die Sequenz (a). 16

5 EXAMPLE AXEMPLE AEXMPLE AEEMPLX AEELPMX AEELMPX EXAMPLE EXAMPLE AEXMPLE AEMXPLE AEMPXLE AELMPXE AEELMPX EXAMPLE EAXMPLE AEXMPLE AEMXPLE AEMPXLE AEMPLXE AEMLPXE AELMPXE AELMPEX AELMEPX AELEMPX AEELMPX EXAMPLE EEAMPLX EEALPMX EEALMPX EEAL M PX EEA L M P X AEE L M P X A E E L M P X AEELMPX (a) Selection sort (b) Insert sort (c) Bubble sort (d) Quick sort Sortieren durch Einfügen (Insert sort). Betrachte die Listenelemente der Reihe nach und füge jedes an seinem richtigen Platz zwischen den bereits betrachteten ein, wobei diese sortiert bleiben. Das gerade bestimmte Element wird eingefügt, indem die größeren Elemente um eine Position nach rechts geschoben werden und das betrachtete Element auf dem frei gewordenen Platz eingefügt wird. Anwendung von Insert sort auf unser Beispiel EXAMPLE ergibt die Sequenz (b). Man stellt fest, dass für die Laufzeitkomplexität gilt: n 2 /2 Vergleiche, n 2 /4 Austausche. Am besten macht man sich dies klar, wenn man ein Feld betrachtet, das gerade verkehrt herum sortiert ist. 2 Sortieren durch Austausch (Bubble sort). Durchlaufe immer wieder das Feld und vertausche jedesmal, wenn es notwendig ist, benachbarte Elemente; wenn beim Durchlauf kein Austausch mehr nötig ist, ist das Feld sortiert. Anwendung von Bubble sort auf unser Beispiel EXAMPLE ergibt die Sequenz (c). Man stellt fest, dass für die Laufzeitkomplexität gilt: n 2 /2 Vergleiche, n 2 /2 Austausche. Sortieren nach Quick sort. Dies ist der wohl am meisten angewendete Sortieralgorithmus. Seine Idee geht auf C.A.R. Hoare (1960) zurück. Es ist ein Vorgehen, das vom Typ Teile und Herrsche (divide et impera, divide and conquer) ist und auf einem Zerlegen des Feldes in zwei Teile und anschließendem Sortieren der Teile unabhängig voneinander beruht. Auf die Teile kann nun diese Idee wieder angewendet werden: Das Verfahren ist rekursiv, d.h. es ruft sich selbst (auf kleinerer Stufe) wieder auf. Wir kommmen im nächsten Kapitel auf das Prinzip Rekursivität zurück. Eine entscheidende Bedeutung kommt der Zerlegung eines Feldes zu. Es soll (zweckmäßigerweise) so erfolgen, dass gilt: Wird das Feld mit Hilfe des Elements a r zerlegt, so soll dies bedeuten: (1) a r befindet sich an seinem endgültigen Platz; (2) für alle j < r gilt a j a r ; (3) für alle j > r gilt a j a r. Bei jedem rekursiven Schritt wird eine solche Zerlegung benötigt. Wie findet man eine solche Zerlegung? Hier ist die Realisierung: Wähle irgendein a r. Durchsuche das Feld von links, bis ein Element gefunden ist, das nicht kleiner als a r ist, und durchsuche das Feld von rechts, bis ein Element gefunden ist, das nicht größer als a r ist. Tausche die so gefundenen Elemente. 2 Siehe algorithmus/algo2.php. 17

6 Wiederhole den obigen Suchprozess solange, bis sich die Suche von links und rechts bei einem Element trifft. Nun ist das Element a r mit dem Element zu tauschen, bei dem sich die Suche von links und rechts getroffen hat. Ist das Feld nun zerlegt (Start), das Startfeld ist also nun a 1,...,a r,...,a n, wird das Sortierverfahren auf die Teile a 1,...,a r und a r+1,...,a n angewendet; als trennende Elemente können nun etwa die Elemente a r und a n verwendet werden. Anwendung von Quick sort auf unser Beispiel EXAMPLE ergibt die Sequenz (d) (M ist beim Start das trennende Element). Das Beste, was bei Quick sort passieren könnte, ist, dass durch jede Zerlegung das Feld genau halbiert wird. Dann würde die Anzahl C n der von Quick sort benötigten Vergleiche der rekurrenten Beziehung vom Typ Teile und Herrsche genügen (n gerade!): C n = 2C n 2 + n. (2.2) Dabei ist 2C n der Aufwand für das Sortieren der zwei halbierten Felder und n der Aufwand für 2 die Zerlegung. Man kann zeigen, dass notwendigerweise C n = n log 2 n gilt. Die Vderifikation, dass diese Darstellung von C n der Rekursion (2.2) genügt ist mit der Funktionalgleichung des Logarithmus einfach: 2C n 2 + n = n log 2( n 2 ) + n = n(log 2 n 1) + n = n(log 2 n = C n. In Kapitel?? kommen wir auf die Logarithmusfunktion zurück. Für den allgemeinen Fall zeigt eine etwas aufwendigere Analyse C n = 2n ln n. Eine wichtige Begriffsbildung ist die Laufzeitkomplexität im Mittel eines Verfahrens. Damit ist hier gemeint, wieviele Rechenschritte ein Sortierverfahren benötigt, wenn es auf ein zufällig vorsortiertes Feld angewendet wird. Wie wir oben gesehen haben, kann das Sortieren ganz schnell erledigt werden, wenn man nur den richtigen Algorithmus verwendet. Dies ist nun eine Feststellung, die sich im Kern auf alle Probleme anwenden lässt, die algorithmisiert werden können. Daher ist es so wichtig, den richtigen Algorithmus für ein Problem zu kennen und einzusetzen, da er möglicherweise ein Problem erst lösbar macht. 2.4 Computerzahlen In einer Grundvorlesung über Analysis beweist man folgenden Satz: Satz Sei g eine Zahl in N mit g 2. Für jedes x R,x 0, gibt es genau eine Darstellung der Gestalt x = σg n x k g k (2.3) k=1 mit σ {+, },n Z und x k {0,1,...,g}, wenn man von den Zahlen x k noch zusätzlich fordert, dass x 0 und dass zu jedem n N ein Index k n existiert mit x k g 1. Wichtige Spezialfälle von Satz (2.4.1) sind g = 10 (Dezimalsystem), g = 2 (Dualsystem), g = 8 (Oktalsystem) und g = 16 (Hexadezimalsystem). Beim Hexadezimalsystem benötigen wir zusätzlich Ziffern, da man etwa 12 nicht als Ziffer verwenden will. Man wählt 0,1,...,9,A,B,C,D,E,F. In (2.3) ist also die Zahl x durch eine Reihe dargestellt, wobei der ganze Anteil g n mit Exponent n abgespaltet wurde, die Forderung x 0 macht diese Abspaltung eindeutig. 18

7 g heißt Basis der Darstellung, welche im Allgemeinen eine gerade Zahl ist. σ steht für das Vorzeichen der Zahl. Die Forderung x k g 1 für fast alle k schließt aus, dass eine Nichteindeutigkeit, wie wir sie vom Dezimalsystem in Form von kennen, zugelassen ist. Die positionelle Schreibweise sieht so aus: = (x) g := σ0.a a 2 g n. (2.4) Der Punkt zwischen 0 und a wird Dezimalpunkt genannt, wenn g = 10, Binärpunkt, wenn g = 2. Eine Zahl x kann eine endliche Anzahl von Ziffern haben bezüglich einer Basis und eine unendliche Anzahl von Ziffern in einer anderen Basis. Zum Beispiel gilt für x = 1/3: Für x := 103 3/4 haben wir (x) 10 = =: +0.3, (x) 3 = (x) 10 = +[103.75], (x) 2 = +[ ], (x) 16 = +[67.C]. Um jede Ziffer in der Darstellung (2.4) im Dualsystem darstellen zu können, benötigen wir einen Code, d.h. eine Darstellung in einem anderen Alphabet; siehe Anhang 1.5. Für das Oktalsystem (g = 8) kann man etwa nutzen: Ziffer Codewort Für die Zahlen, die wir oben beschrieben haben, benötigen wir im Allgemeinen unendlich viele Speicherplätze. Daher müssen wir die Darstellung (2.4) für eine Computernutzung einschränken. Dies geschieht dadurch, dass die Reihe bei einem t N, der Mantissenlänge, abgebrochen wird und der Exponent n eingeschränkt wird. So gelangen wir zur Darstellung (x) g = σ0.x...x t g e wobei t N die Anzahl der erlaubten signifikanten Ziffern x i {0,1,...,g 1} ist; e Z wird Exponent genannt, welcher in einem Bereich e min,e max variieren kann. Damit gelangen wir zur Menge der Computerzahlen/Fließkommazahlen F := F(g,t,e min,e max ) := Es ist einfach, diese Zahlen zu zählen: { σ 0.x...x t g e x,... x t {0,1,...,g 1},x 0, e Z,e min e e max,σ {+, } #F(g,t,e min,e max ) = 2(g 1)g t (e max e min + 1) Natürlich ist in einem Computerzahlsystem auch die Null realisiert. Damit sind dann #F(g,t,e min,e max )+ 1 Zahlen verfügbar. In F(g,t,e min,e max ) sind größte und kleinste Zahl gegeben durch x min := +[ ] g e min t = g e min, x max := +[δ...δ] g emax t = g emax (1 g t ) wobei δ = g. Offenbar gilt für alle Computerzahlen x 0 g e min x g emax. Hat man eine reelle Zahl x mit x < g e min, so wird im Allgemeinen x durch Null ersetzt. Zahlen x mit x > g emax können nicht verarbeitet werden. Treten diese Fälle auf, so spricht man von Exponentenüberlauf. In jedem Intervall [g e,g e ],e min e e max, finden wir µ = g t g t + 1 gleichförmig verteilte Zahlen: F [g e,g e ] = {g e,g e + g e t,...,g e + µg e t }. (2.5) Beachte, dass der Zuwachs g e t anwächst, wenn e von e min auf e max anwächst. 19 }.

8 Lemma Betrachte das System F(g,t,e min,e max ). Sei x eine reelle Zahl mit x min x x max. Dann gilt: z x min 1 z F x 2 g t+1. (2.6) Beweis: Ohne Einschränkungen können wir annehmen: x ist positiv. Wir können annehmen, dass mit einem e mit e min e e max gilt: x [g e,g e ]. Aus (2.5) erhalten wir, dass eine Zahl z [g e,g e ] mit z x 1 2 ge t existiert. Wegen g e x ist die Behauptung bewiesen. Die Zahl eps := 1 2 g t+1 heißt Maschinengenauigkeit. Beachte, sie hängt nur von der Mantissenlänge t ab. Auf einem Computer sind üblicherweise zwei Formate von Fließkommazahlen verfügbar: einfache und doppelte Genauigkeit. Im IEEE-Standard mit einfacher Geneauigkeit haben wir eps = Wegen des nötigen Übergangs von einer reellen Zahl x zu einer Computerzahl, muss x im Allgemeinen durch eine Approximation ersetzt werden. Dieser Prozess wird als Runden bezeichnet. Sei F das obige System der Computerzahlen. Es werden zwei Wege beschritten, eine gegebene reelle Zahl x durch eine Computerzahl f l(x) zu ersetzen: Runden und Abschneiden. Betrachte die positive reelle Zahl x dargestellt durch x = σ0.x... d t d t... g e. Abschneiden: Rundung: rd(x) := ch(x) := σ0.x... d t g e. { σ0.x... (1 + d t ) g e, falls d t+1 g/2 σ0.x... d t g e, sonst. Der Fehler, der ensteht, wenn man x durch fl(x) ersetzt, wird Rundungsfehler genannt. Definition Sei x eine reelle Zahl, x 0. Der absolute Fehler von x ist gegeben durch x f l(x) und der relative Fehler durch x f l(x) / x. Korollar Sei das System F(g,t,e min,e max ) gegeben und sei x eine reelle Zahl mit x max x x min. Dann folgt für den relativen Rundungsfehler: rd(x) x x eps, ch(x) x x 2eps. (2.7) Die Grundoperationen der Arithmetik sind +,,,/. Wie sind diese Operationen realisiert in einem Fließkommasystem F := F(g,t,e min,e max )? Sei eine der Operationen +,,,/. Wir bezeichnen die entsprechende Operation, realisiert in F mit. Wir nehmen an, dass sie so realisiert sei: x y := fl(x y) für x,y F mit x min x y x max. (2.8) Klar, im Fall = / haben wir anzunehmen, dass y 0. Als Konsequenz haben wir: x y = (x y)(1 + τ) mit τ κ eps. Hier ist κ eine Konstante, die nicht von x,y abhängt. Probleme der Computer-Arithmetik sind: 20

9 Überlauf Siehe oben. Unterlauf Siehe oben. Auslöschung Addition etwa gleich großer Zahlen mit entgegengesetztem Vorzeichen führt zu einer starken Verringerung der Zahl der gültigen Ziffern. Ungültigkeit von Rechenregeln Selbst in Fällen, wo weder Überlauf noch Unterlauf eintritt, gelten die Rechenregeln der reellen Zahlen im allgemeinen nicht mehr. 2.5 Anhang: Abbildungen Mit Abbildungen drücken wir den mathematischen Sachverhalt aus, dass es zwischen zwei Objekten eine klar definierte Abbhängigkeit gibt. Definition Seien A, B, C, D Mengen. (a) Eine Abbildung f von A nach B ist eine Vorschrift, durch die jedem a A genau ein Bild f(a) B zugeordnet wird; A heißt Definitionsbereich, B heißt Wertebereich von f. Wir schreiben f : A B. (b) Zwei Abbildungen f : A B, g : C D heißen gleich, wenn gilt: A = C,B = D,f(x) = g(x) für alle x A. Wir werden später auch von Funktionen sprechen. In unserem Verständnis ist eine Funktion ein Spezialfall einer Abbildung: wir sprechen dann von einer Funktion, wenn wir eine Abbildung zwischen Zahlbereichen haben, d.h. wenn Definitions und Wertebereich der Abbildung Mengen von Zahlen sind. 3 Beispiel Sei A eine Menge. Dann nennt man die Abbildung id A : A x x A die Identität auf A. (Manchmal lassen wir den Index A weg und schreiben einfach id, wenn klar ist, um welches A es sich handelt.) Beispiel Seien A,B Mengen. Dann heißt die Abbildung π 1 : A B (a,b) a A die Projektion auf den ersten Faktor. 4 Es sollte klar sein, dass entsprechend auch die Projektionen auf beliebige Faktoren in einem kartesischen Produkt erklärt sind. Definition Sei f : A B eine Abbildung. Die Menge graph(f) := {(a,b) A B a A,b = f(a)} heißt der Graph von f. 3 Der Abbildungsbegriff, wie wir ihn hier eingeführt haben, konnte erst nach G. Cantor in Mode kommen, da nun Mengen handhabare Objekte waren. 4 Die Wortwahl wird verständlich, wenn wir uns A A als Koordinatensystem realisiert denken. Dann wird von einem Punkt durch Beleuchtung parallel zur zweiten Koordinatenachse auf der ersten Achse der projezierte Punkt sichtbar. 21

10 Definition Sei f : X Y eine Abbildung und seien A X,B Y. Dann heißt die Menge f(a) := {f(x) x A} die Bildmenge von A oder das Bild von A, und die Menge f (B) := {x X f(x) B} heißt die Urbildmenge von B oder einfach das Urbild von B. Sei A eine Menge. Jede Abbildung N n x n A nennt man eine Folge mit Folgengliedern aus A. Meist schreiben wir dafür kurz (x n ) n N. Regel Sei f : X Y,A 1,A 2 X,B 1,B 2 Y. A 1 A 2 = f(a 1 ) f(a 2 ) (2.9) f(a 1 A 2 ) = f(a 1 ) f(a 2 ) (2.10) f(a 1 A 2 ) f(a 1 ) f(a 2 ) (2.11) B 1 B 2 = f (B 1 ) f (B 2 ) (2.12) f (B 1 B 2 ) = f (B 2 ) (2.13) Beweisen wir etwa (2.13). Da eine Gleichheit von Mengen behauptet wird, sind zwei Inklusionen zu verifizieren. Zu f (B 1 B 2 ) f (B 2 ). f (B 1 B 2 ). Also gilt f(x) B 1 B 2. Ist f(x) B 1, dann ist x Sei x f (B 2 ). Ist f(x) B 2, dann ist x f (B 2 ) f (B 2 ). Zu f (B 2 ) f (B 1 B 2 ). f (B 1 ) Sei x f (B 2 ). Ist x f (B 1 ), dann ist f(x) B 1 B 1 B 2, d.h. x f (B 1 B 2 ). Ist x f (B 2 ), dann ist f(x) B 2 B 1 B 2, d.h. x f (B 1 B 2 ). Definition Seien f : X Y, g : Y Z Abbildungen. Die Hintereinanderausführung oder Komposition g f der Abbildungen f, g ist erklärt durch g f : X x g(f(x)) Z. Regel Seien f : X Y,g : Y Z,h : Z W Abbildungen. id Y f = f id X (2.14) h (g f) = (h g) f (2.15) Die Identität in (2.15) nennt man das Assoziativgesetz. Man beachte, dass für die Hintereinanderausführung von Abbildungen ein Kommutativgesetz ( f g = g f) im allgemeinen nicht gilt. 22

11 Definition Sei f : X Y eine Abbildung. (i) f injektiv genau dann, wenn für alle x,x X x x = f(x) f(x ) gilt. (ii) f surjektiv genau dann, wenn für alle y Y ein x X existiert mit y = f(x). (iii) f bijektiv : f injektiv und surjektiv Ohne Beweis halten wir fest: Satz Sei f : X Y eine Abbildung. Dann ist f bijektiv genau dann, wenn g : Y X existiert mit g f = id X,f g = id Y. Definition Sei f : X Y bijektiv. Die nach Satz eindeutig bestimmte Abbildung 5 g mit g f = f g = id heißt die (zu f) inverse Abbildung. Wir schreiben dafür f. 2.6 Übungen 1.) Sei A ein (endliches) Alphabet, sei A := {()} n N An die Menge der Wörter (beliebiger Länge) über dem Alphabet A. Für zwei Worte u = (u 1,...,u k ) A k,v = (v 1,...,v l ) A l setzen wir: Wir definieren für u,v A : (a) Zeige: ist eine Halbordnung in A. (b) Ist stets eine Ordnung in A? (c) uv := (u 1,...,u k,v 1,...,v l ) A k+l. u v : Es gibt z A mit uz = v. Gibt es in A ein Wort w, so dass gilt: w u für alle u A. 2.) Eine Permutation der Zahlen 1,2,...,n ist eine Umstellung dieser Zahlen. (a) Ermittle die Anzahl der Permutationen von 1, 2,..., 8. (b) Die Fehlstandszahl einer Permutation ist die Anzahl der Paare (i, j), die nach Umstellung mit dieser Permutation in falscher Reihenfolge stehen. Ermittle die Anzahl der Permutationen von 1,2,...,5 mit ungerader Fehlstandszahl. 3.) Finde ein Darstellung des periodischen Dezimalbruchs x = im Dualsystem. 4.) Betrachte das Fließkommasystem F := F(2, 2, 2, 2). (a) Bestimme von den positiven Zahlen F + in F die kleinste Zahl x min und größte Zahl x max. (b) Wie weit sind die nächsten Nachbarn in F + von x min bzw. x max entfernt? 5.) Betrachte das Fließkommasystem F := F(2, 3,, 2). (a) Bestimme alle positiven Zahlen in F. (b) x := 1/4,y := 7/8 liegen in F. Liegt auch x + y in F? 5 In der Literatur spricht man bei bijektiven Abbildungen oft auch von umkehrbar eineindeutigen Abbildungen. In Satz zusammen mit Definition liegt die Berechtigung für eine solche Sprechweise. 23

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise Coma I Einleitung 1 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise 2 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen

Mehr

Vorlesung. Funktionen/Abbildungen 1

Vorlesung. Funktionen/Abbildungen 1 Vorlesung Funktionen/Abbildungen 1 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik für die Studiengänge Ingenieur-Informatik berufsbegleitendes Studium Lehramt Informatik (Sekundar- und Berufsschule) http://theo.cs.uni-magdeburg.de/lehre04s/ Lehrbeauftragter:

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Das Rechnen in Zahlensystemen zur Basis b=2, 8, 10 und 16 Prof. Dr. Nikolaus Wulff Zahlensysteme Neben dem üblichen dezimalen Zahlensystem zur Basis 10 sind in der Informatik

Mehr

Mengen, Funktionen und Logik

Mengen, Funktionen und Logik Wirtschaftswissenschaftliches Zentrum Universität Basel Mathematik für Ökonomen 1 Dr. Thomas Zehrt Mengen, Funktionen und Logik Literatur Referenz: Gauglhofer, M. und Müller, H.: Mathematik für Ökonomen,

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

Mathematik für Ökonomen 1

Mathematik für Ökonomen 1 Mathematik für Ökonomen 1 Dr. Thomas Zehrt Wirtschaftswissenschaftliches Zentrum Universität Basel Herbstemester 2008 Mengen, Funktionen und Logik Inhalt: 1. Mengen 2. Funktionen 3. Logik Teil 1 Mengen

Mehr

Leitprogramm Bubblesort

Leitprogramm Bubblesort Leitprogramm Bubblesort Dr. Rainer Hauser Inhalt 1 Übersicht...1 2 Input-Block I: Der Sortieralgorithmus Bubblesort...2 3 Input-Block II: Die Effizienz von Bubblesort...6 4 Zusammenfassung...8 5 Lernkontrolle...9

Mehr

Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14. Auswahl vorausgesetzter Vorkenntnisse

Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14. Auswahl vorausgesetzter Vorkenntnisse UNIVERSITÄT DES SAARLANDES FACHRICHTUNG 6.1 MATHEMATIK Dipl.-Math. Kevin Everard Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14 Auswahl vorausgesetzter Vorkenntnisse

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Automat versus Computer Ein Automat ist eine Maschine,

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

Mehr

DLP. Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de ALZAGK SEMINAR. Bremen, den 18. Januar 2011. Fachbereich Mathematik und Informatik 1 / 27

DLP. Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de ALZAGK SEMINAR. Bremen, den 18. Januar 2011. Fachbereich Mathematik und Informatik 1 / 27 DLP Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de Fachbereich Mathematik und Informatik ALZAGK SEMINAR Bremen, den 18. Januar 2011 1 / 27 Inhaltsverzeichnis 1 Der diskrete Logarithmus Definition

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

2 Rechnen auf einem Computer

2 Rechnen auf einem Computer 2 Rechnen auf einem Computer 2.1 Binär, Dezimal und Hexadezimaldarstellung reeller Zahlen Jede positive reelle Zahl r besitzt eine Darstellung der Gestalt r = r n r n 1... r 1 r 0. r 1 r 2... (1) := (

Mehr

Gibt es verschiedene Arten unendlich? Dieter Wolke

Gibt es verschiedene Arten unendlich? Dieter Wolke Gibt es verschiedene Arten unendlich? Dieter Wolke 1 Zuerst zum Gebrauch des Wortes unendlich Es wird in der Mathematik in zwei unterschiedlichen Bedeutungen benutzt Erstens im Zusammenhang mit Funktionen

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

Geometrische Mannigfaltigkeiten

Geometrische Mannigfaltigkeiten Geometrische Mannigfaltigkeiten Thilo Kuessner Abstract Kurzfassung der Vorlesung: Definitionen, Beispiele und Sätze, keine Beweise. Definition 1. Ein topologischer Raum ist eine Menge X mit einer Familie

Mehr

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende

Mehr

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 25. April 2016 Die Dimensionsformel Definition 3.9 Sei f : V W eine lineare Abbildung zwischen zwei K-Vektorräumen. Der Kern

Mehr

Mathematik 1. Lösungsvorschläge zum 2. Übungsblatt

Mathematik 1. Lösungsvorschläge zum 2. Übungsblatt Hochschule Regensburg Fakultät Informatik/Mathematik Christoph Böhm Wintersemester 0/0 Wirtschaftsinformatik Bachelor IW Informatik Bachelor IN Vorlesung Mathematik Mathematik Lösungsvorschläge zum Übungsblatt

Mehr

Mengen und Abbildungen

Mengen und Abbildungen Mengen und Abbildungen Der Mengenbegriff Durchschnitt, Vereinigung, Differenzmenge Kartesisches Produkt Abbildungen Prinzip der kleinsten natürlichen Zahl Vollständige Induktion Mengen und Abbildungen

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Einheit 1 Mathematische Methodik 1. Problemlösen 2. Beweistechniken 3. Wichtige Grundbegriffe Methodik des Problemlösens Klärung der Voraussetzungen Welche Begriffe sind zum Verständnis

Mehr

Technische Informatik I

Technische Informatik I Technische Informatik I Vorlesung 2: Zahldarstellung Joachim Schmidt jschmidt@techfak.uni-bielefeld.de Übersicht Geschichte der Zahlen Zahlensysteme Basis / Basis-Umwandlung Zahlsysteme im Computer Binärsystem,

Mehr

Mengen und Abbildungen

Mengen und Abbildungen 1 Mengen und bbildungen sind Hilfsmittel ( Sprache ) zur Formulierung von Sachverhalten; naive Vorstellung gemäß Georg Cantor (1845-1918) (Begründer der Mengenlehre). Definition 1.1 Eine Menge M ist eine

Mehr

Mathematik wirklich verstehen

Mathematik wirklich verstehen Mathematik wirklich verstehen Eine Einführung in ihre Grundbegriffe und Denkweisen Von Arnold Kirsch 3. verbesserte Auflage Aulis Verlag Deubner & Co KG Köln Inhaltsverzeichnis Vorwort 11 Teil A Zahlen

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

2 Mengen und Abbildungen

2 Mengen und Abbildungen 2.1 Mengen Unter einer Menge verstehen wir eine Zusammenfassung von Objekten zu einem Ganzen. Die Objekte heiÿen Elemente. Ist M eine Menge und x ein Element von M so schreiben wir x M. Wir sagen auch:

Mehr

Grundstrukturen: Speicherorganisation und Zahlenmengen

Grundstrukturen: Speicherorganisation und Zahlenmengen Zahlendarstellung Zahlen und ihre Darstellung in Digitalrechnern Grundstrukturen: Speicherorganisation und Zahlenmengen Linear organisierter Speicher zu einer Adresse gehört ein Speicher mit 3 Bit-Zellen

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal

Mehr

Gleitkommaarithmetik und Pivotsuche bei Gauß-Elimination. Lehrstuhl für Angewandte Mathematik Wintersemester 2009/10. 14.

Gleitkommaarithmetik und Pivotsuche bei Gauß-Elimination. Lehrstuhl für Angewandte Mathematik Wintersemester 2009/10. 14. Gleitkommaarithmetik und Pivotsuche bei Gauß-Elimination Vorlesung Computergestützte Mathematik zur Linearen Algebra Lehrstuhl für Angewandte Mathematik Wintersemester 2009/0 4. Januar 200 Instabilitäten

Mehr

Kapitel 1. Grundlagen Mengen

Kapitel 1. Grundlagen Mengen Kapitel 1. Grundlagen 1.1. Mengen Georg Cantor 1895 Eine Menge ist die Zusammenfassung bestimmter, wohlunterschiedener Objekte unserer Anschauung oder unseres Denkens, wobei von jedem dieser Objekte eindeutig

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

Zahlen und elementares Rechnen

Zahlen und elementares Rechnen und elementares Rechnen Christian Serpé Universität Münster 7. September 2011 Christian Serpé (Universität Münster) und elementares Rechnen 7. September 2011 1 / 51 Gliederung 1 2 Elementares Rechnen 3

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

Mehr

Vorkurs Mathematik Abbildungen

Vorkurs Mathematik Abbildungen Vorkurs Mathematik Abbildungen Philip Bell 19. September 2016 Diese Arbeit beruht im Wesentlichen auf dem Vortrag Relationen, Partitionen und Abbildungen von Fabian Grünig aus den vorangehenden Jahren.

Mehr

5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56

5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56 5 Beweistechniken Übersicht 5.1 Drei wichtige Beweistechniken................................. 55 5. Erklärungen zu den Beweistechniken............................ 56 Dieses Kapitel ist den drei wichtigsten

Mehr

7. Ringe und Körper. 7. Ringe und Körper 49

7. Ringe und Körper. 7. Ringe und Körper 49 7. Ringe und Körper 49 7. Ringe und Körper In den bisherigen Kapiteln haben wir nur Gruppen, also insbesondere nur Mengen mit lediglich einer Verknüpfung, untersucht. In der Praxis gibt es aber natürlich

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

Natürliche, ganze und rationale Zahlen

Natürliche, ganze und rationale Zahlen Natürliche, ganze und rationale Zahlen Zunächst haben die zum Zählen verwendeten natürlichen Zahlen 0, 1, 2, 3,... nichts mit dem reellen Zahlen zu tun. Durch die ausgezeichnete reelle Zahl 1 (Maßeinheit!)

Mehr

Kapitel 4A: Einschub - Binärcodierung elementarer Datentypen. Einschub: Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik

Kapitel 4A: Einschub - Binärcodierung elementarer Datentypen. Einschub: Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik Einschub: Binärcodierung elementarer Datentypen Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik Unterscheide Zahl-Wert Zahl-Bezeichner Zu ein- und demselben Zahl-Wert kann es verschiedene

Mehr

Vorlesung. Funktionen/Abbildungen

Vorlesung. Funktionen/Abbildungen Vorlesung Funktionen/Abbildungen 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

Mehr

1 Zahlen. 1.1 Die reellen Zahlen

1 Zahlen. 1.1 Die reellen Zahlen Zahlen Die aus dem Alltagsleben bekannten rationalen Zahlen (Bruchzahlen) reichen nicht aus, um Analysis rigoros betreiben zu können. Die historische Entwicklung zeigt vielmehr, dass für die Belange der

Mehr

1 Axiomatische Charakterisierung der reellen. 3 Die natürlichen, die ganzen und die rationalen. 4 Das Vollständigkeitsaxiom und irrationale

1 Axiomatische Charakterisierung der reellen. 3 Die natürlichen, die ganzen und die rationalen. 4 Das Vollständigkeitsaxiom und irrationale Kapitel I Reelle Zahlen 1 Axiomatische Charakterisierung der reellen Zahlen R 2 Angeordnete Körper 3 Die natürlichen, die ganzen und die rationalen Zahlen 4 Das Vollständigkeitsaxiom und irrationale Zahlen

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen... Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.

Mehr

Uebersicht. Webpage & Ilias. Administratives. Lehrbuch. Vorkenntnisse. Datenstrukturen & Algorithmen

Uebersicht. Webpage & Ilias. Administratives. Lehrbuch. Vorkenntnisse. Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Uebersicht Administratives Einleitung Ein einführendes Beispiel Matthias Zwicker Universität Bern Frühling 2010 2 Administratives Dozent Prof. Zwicker, zwicker@iam.unibe.ch

Mehr

Surjektive, injektive und bijektive Funktionen.

Surjektive, injektive und bijektive Funktionen. Kapitel 1: Aussagen, Mengen, Funktionen Surjektive, injektive und bijektive Funktionen. Definition. Sei f : M N eine Funktion. Dann heißt f surjektiv, falls die Gleichung f(x) = y für jedes y N mindestens

Mehr

Kapitel 2 MENGENLEHRE

Kapitel 2 MENGENLEHRE Kapitel 2 MENGENLEHRE In diesem Kapitel geben wir eine kurze Einführung in die Mengenlehre, mit der man die ganze Mathematik begründen kann. Wir werden sehen, daßjedes mathematische Objekt eine Menge ist.

Mehr

Numerisches Programmieren, Übungen

Numerisches Programmieren, Übungen Technische Universität München SoSe 0 Institut für Informatik Prof Dr Thomas Huckle Dipl-Math Jürgen Bräckle Nikola Tchipev, MSc Numerisches Programmieren, Übungen Musterlösung Übungsblatt: Zahlendarstellung,

Mehr

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird. Zahlensysteme Definition: Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird. In der Informatik spricht man auch von Stellenwertsystem,

Mehr

KAPITEL III DAS InFORMATIK- KOCHSTUDIO

KAPITEL III DAS InFORMATIK- KOCHSTUDIO Das Informatik- Kochstudio KAPITEL III 48 Das Informatik-Kochstudio Algorithmen Algorithmen III Sortieren Ordnung ist das halbe Leben. Mit diesem Spruch nerven seit Generationen Eltern ihre Kinder. Aber

Mehr

Wirtschaftsmathematik für International Management (BA) und Betriebswirtschaft (BA)

Wirtschaftsmathematik für International Management (BA) und Betriebswirtschaft (BA) Wirtschaftsmathematik für International Management (BA) und Betriebswirtschaft (BA) Wintersemester 2013/14 Hochschule Augsburg : Gliederung 1 Aussagenlogik 2 Lineare Algebra 3 Lineare Programme 4 Folgen

Mehr

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme Grundlagen der Informatik 2 Grundlagen der Digitaltechnik 1. Zahlensysteme Prof. Dr.-Ing. Jürgen Teich Dr.-Ing. Christian Haubelt Lehrstuhl für Hardware-Software Software-Co-Design Grundlagen der Digitaltechnik

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner

Mehr

Einführung in die Informatik I Kapitel II.3: Sortieren

Einführung in die Informatik I Kapitel II.3: Sortieren 1 Einführung in die Informatik I Kapitel II.3: Sortieren Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät

Mehr

Kapitel 1. Grundlagen

Kapitel 1. Grundlagen Kapitel 1. Grundlagen 1.1. Mengen Georg Cantor 1895 Eine Menge ist die Zusammenfassung bestimmter, wohlunterschiedener Objekte unserer Anschauung oder unseres Denkens, wobei von jedem dieser Objekte eindeutig

Mehr

Optimalitätskriterien

Optimalitätskriterien Kapitel 4 Optimalitätskriterien Als Optimalitätskriterien bezeichnet man notwendige oder hinreichende Bedingungen dafür, dass ein x 0 Ω R n Lösung eines Optimierungsproblems ist. Diese Kriterien besitzen

Mehr

Numerische Verfahren und Grundlagen der Analysis

Numerische 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 / 16 4. Groß-O R. Steuding (HS-RM)

Mehr

8. Quadratische Reste. Reziprozitätsgesetz

8. Quadratische Reste. Reziprozitätsgesetz O Forster: Prizahlen 8 Quadratische Reste Rezirozitätsgesetz 81 Definition Sei eine natürliche Zahl 2 Eine ganze Zahl a heißt uadratischer Rest odulo (Abkürzung QR, falls die Kongruenz x 2 a od eine Lösung

Mehr

Sprechen wir über Zahlen (Karl-Heinz Wolff)

Sprechen wir über Zahlen (Karl-Heinz Wolff) Sprechen wir über Zahlen (Karl-Heinz Wolff) Die Überschrift ist insoweit irreführend, als der Autor ja schreibt und nicht mit dem Leser spricht. Was Mathematik im allgemeinen und Zahlen im besonderen betrifft,

Mehr

5 Eigenwerte und die Jordansche Normalform

5 Eigenwerte und die Jordansche Normalform Mathematik für Physiker II, SS Mittwoch 8.6 $Id: jordan.tex,v.6 /6/7 8:5:3 hk Exp hk $ 5 Eigenwerte und die Jordansche Normalform 5.4 Die Jordansche Normalform Wir hatten bereits erwähnt, dass eine n n

Mehr

2. Symmetrische Gruppen

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

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

11. Primfaktorzerlegungen

11. Primfaktorzerlegungen 78 Andreas Gathmann 11 Primfaktorzerlegungen Euch ist sicher aus der Schule bekannt, dass sich jede positive ganze Zahl a als Produkt a = p 1 p n von Primzahlen schreiben lässt, und dass diese Darstellung

Mehr

Didaktik der Zahlbereiche 4. Die Menge der ganzen Zahlen. Mathematikunterricht in der Jahrgangsstufe 7. Zahlbereichserweiterungen in der Hauptschule

Didaktik der Zahlbereiche 4. Die Menge der ganzen Zahlen. Mathematikunterricht in der Jahrgangsstufe 7. Zahlbereichserweiterungen in der Hauptschule Zahlbereichserweiterungen in der Hauptschule Didaktik der Zahlbereiche 4 Dr. Christian Groß Lehrstuhl Didaktik der Mathematik Universität Augsburg Wintersemester 2006/07 Natürliche Zahlen, : Klasse 5 positive

Mehr

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

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Zusatztutorium, 25.01.2013

Zusatztutorium, 25.01.2013 Zusatztutorium, 25.01.2013 David Müßig muessig[at]mi.fu-berlin.de http://page.mi.fu-berlin.de/def/tutorium/ WiSe 12/13 1 Der Homomorphiesatz Der Homomorphiesatz scheint für viele eine Art rotes Tuch zu

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen)

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) 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_16

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Technische Universität München

Technische Universität München Stand der Vorlesung Kapitel 2: Auffrischung einiger mathematischer Grundlagen Mengen, Potenzmenge, Kreuzprodukt (Paare, Tripel, n-tupel) Relation: Teilmenge MxN Eigenschaften: reflexiv, symmetrisch, transitiv,

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f

Mehr

2. Universelle Algebra

2. Universelle Algebra 2. Universelle Algebra Die Theorie der universellen Algebra verallgemeinert die Theorien der klassischen Algebren. Obwohl ursprünglich nur eine Sorte betrachtet wurde, werden wir hier gleich den mehrsortigen

Mehr

Vom Leichtesten zum Schwersten Sortieralgorithmen

Vom Leichtesten zum Schwersten Sortieralgorithmen Aktivität 7 Vom Leichtesten zum Schwersten Sortieralgorithmen Zusammenfassung Häufig verwendet man Computer dazu Listen von Elementen in eine bestimmte Ordnung zu bringen. So kann man beispielsweise Namen

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken

Mehr

1.1 Mengen und Abbildungen

1.1 Mengen und Abbildungen Lineare Algebra I WS 2015/16 c Rudolf Scharlau 3 1.1 Mengen und Abbildungen In diesem Abschnitt stellen wir die grundlegende mathematische Sprache und Notation zusammen, die für jede Art von heutiger Mathematik

Mehr

1. Gruppen. 1. Gruppen 7

1. Gruppen. 1. Gruppen 7 1. Gruppen 7 1. Gruppen Wie schon in der Einleitung erläutert wollen wir uns in dieser Vorlesung mit Mengen beschäftigen, auf denen algebraische Verknüpfungen mit gewissen Eigenschaften definiert sind.

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

Mathematischer Vorbereitungskurs für Ökonomen

Mathematischer Vorbereitungskurs für Ökonomen Mathematischer Vorbereitungskurs für Ökonomen Dr. Thomas Zehrt Wirtschaftswissenschaftliches Zentrum Universität Basel Ungleichungen Inhalt: 1. Grundlegendes 2. Lineare Ungleichungen 3. Ungleichungen mit

Mehr

9.2 Invertierbare Matrizen

9.2 Invertierbare Matrizen 34 9.2 Invertierbare Matrizen Die Division ist als Umkehroperation der Multiplikation definiert. Das heisst, für reelle Zahlen a 0 und b gilt b = a genau dann, wenn a b =. Übertragen wir dies von den reellen

Mehr

Teil II. Nichtlineare Optimierung

Teil II. Nichtlineare Optimierung Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene

Mehr

U. Rausch, 2010 Potenzrechnung 1

U. Rausch, 2010 Potenzrechnung 1 U. Rausch, 2010 Potenzrechnung 1 Potenzrechnung 1 Schreibweise und Potenzrechenregeln Unter einer Potenz versteht man ein Symbol der Form a x, gesprochen a hoch x, wobei a und x (reelle) Zahlen sind. Dabei

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

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr